/*
 * Copyright Codeplay Software Ltd.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use these files except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

// DO NOT MODIFY BY HAND
// This file was automatically generated by generate_conv2d_tests.py.
// Results calculated using Tensorflow v1.12.0.

#include <gtest/gtest.h>

#include "sycldnn/padding_mode.h"

#include "test/types/cartesian_product.h"
#include "test/types/kernel_data_types.h"
#include "test/types/nested_pairs_to_triple.h"
#include "test/types/test_backend_types.h"
#include "test/types/to_gtest_types.h"

#include "test/conv2d/selector_list.h"
#include "test/conv2d/window_stride_fixture.h"

#include <array>
#include <vector>

using DataTypeList = sycldnn::types::KernelDataTypes;
using Selectors = sycldnn::types::SelectorList;
using Backends = sycldnn::types::AllBackendTypes;

using SNNTypePairs =
    sycldnn::types::CartesianProduct<Selectors, DataTypeList>::type;
using BackendTypePairs =
    sycldnn::types::CartesianProduct<SNNTypePairs, Backends>::type;
using TestTriples = sycldnn::types::NestedPairsToTriple<BackendTypePairs>::type;

using GTestTypeTriples = sycldnn::types::ToGTestTypes<TestTriples>::type;

template <typename Pair>
using ForwardWindow7Stride1 = WindowStrideTest<Pair, 7, 1>;
TYPED_TEST_SUITE(ForwardWindow7Stride1, GTestTypeTriples);
TYPED_TEST(ForwardWindow7Stride1, SAME1x8x8x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      9724.,  12390., 15142., 17976., 18970., 16450., 13860., 11204.,
      14660., 18525., 22460., 26460., 27580., 23765., 19900., 15990.,
      20150., 25315., 30519., 35756., 36953., 31689., 26410., 21122.,
      25970., 32480., 38983., 45472., 46697., 39886., 33110., 26376.,
      31906., 39760., 47551., 55272., 56497., 48118., 39830., 31640.,
      25202., 31285., 37269., 43148., 44051., 37359., 30790., 24350.,
      18840., 23275., 27590., 31780., 32410., 27335., 22400., 17610.,
      13044., 16010., 18850., 21560., 21966., 18382., 14940., 11644.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 1}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x8x8x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {45472., 46697., 55272., 56497.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 1}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x8x8x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      19216.,  19448.,  24480., 24780., 29912., 30284., 35504.,  35952.,
      37464.,  37940.,  32480., 32900., 27360., 27720., 22112.,  22408.,
      28950.,  29320.,  36575., 37050., 44335., 44920., 52220.,  52920.,
      54425.,  55160.,  46885., 47530., 39250., 39800., 31530.,  31980.,
      39760.,  40300.,  49940., 50630., 60192., 61038., 70504.,  71512.,
      72856.,  73906.,  62460., 63378., 52040., 52820., 41608.,  42244.,
      51198.,  51940.,  64015., 64960., 76811., 77966., 89572.,  90944.,
      91973.,  93394.,  78533., 79772., 65170., 66220., 51898.,  52752.,
      62846.,  63812.,  78295., 79520., 93611., 95102., 108780., 110544.,
      111181., 112994., 94661., 96236., 78330., 79660., 62202.,  63280.,
      49480.,  50404.,  61400., 62570., 73116., 74538., 84616.,  86296.,
      86380.,  88102.,  73224., 74718., 60320., 61580., 47680.,  48700.,
      36830.,  37680.,  45475., 46550., 53875., 55180., 62020.,  63560.,
      63245.,  64820.,  53305., 54670., 43650., 44800., 34290.,  35220.,
      25344.,  26088.,  31080., 32020., 36560., 37700., 41776.,  43120.,
      42560.,  43932.,  35576., 36764., 28880., 29880., 22480.,  23288.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 1}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x8x8x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {89572.,  90944.,  91973.,  93394.,
                                         108780., 110544., 111181., 112994.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 1}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x8x8x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      38200.,  38432.,  38664.,  38896.,  48660.,  48960.,  49260.,  49560.,
      59452.,  59824.,  60196.,  60568.,  70560.,  71008.,  71456.,  71904.,
      74452.,  74928.,  75404.,  75880.,  64540.,  64960.,  65380.,  65800.,
      54360.,  54720.,  55080.,  55440.,  43928.,  44224.,  44520.,  44816.,
      57530.,  57900.,  58270.,  58640.,  72675.,  73150.,  73625.,  74100.,
      88085.,  88670.,  89255.,  89840.,  103740., 104440., 105140., 105840.,
      108115., 108850., 109585., 110320., 93125.,  93770.,  94415.,  95060.,
      77950.,  78500.,  79050.,  79600.,  62610.,  63060.,  63510.,  63960.,
      78980.,  79520.,  80060.,  80600.,  99190.,  99880.,  100570., 101260.,
      119538., 120384., 121230., 122076., 140000., 141008., 142016., 143024.,
      144662., 145712., 146762., 147812., 124002., 124920., 125838., 126756.,
      103300., 104080., 104860., 105640., 82580.,  83216.,  83852.,  84488.,
      101654., 102396., 103138., 103880., 127085., 128030., 128975., 129920.,
      152467., 153622., 154777., 155932., 177772., 179144., 180516., 181888.,
      182525., 183946., 185367., 186788., 155827., 157066., 158305., 159544.,
      129290., 130340., 131390., 132440., 102942., 103796., 104650., 105504.,
      124726., 125692., 126658., 127624., 155365., 156590., 157815., 159040.,
      185731., 187222., 188713., 190204., 215796., 217560., 219324., 221088.,
      220549., 222362., 224175., 225988., 187747., 189322., 190897., 192472.,
      155330., 156660., 157990., 159320., 123326., 124404., 125482., 126560.,
      98036.,  98960.,  99884.,  100808., 121630., 122800., 123970., 125140.,
      144810., 146232., 147654., 149076., 167552., 169232., 170912., 172592.,
      171038., 172760., 174482., 176204., 144954., 146448., 147942., 149436.,
      119380., 120640., 121900., 123160., 94340.,  95360.,  96380.,  97400.,
      72810.,  73660.,  74510.,  75360.,  89875.,  90950.,  92025.,  93100.,
      106445., 107750., 109055., 110360., 122500., 124040., 125580., 127120.,
      124915., 126490., 128065., 129640., 105245., 106610., 107975., 109340.,
      86150.,  87300.,  88450.,  89600.,  67650.,  68580.,  69510.,  70440.,
      49944.,  50688.,  51432.,  52176.,  61220.,  62160.,  63100.,  64040.,
      71980.,  73120.,  74260.,  75400.,  82208.,  83552.,  84896.,  86240.,
      83748.,  85120.,  86492.,  87864.,  69964.,  71152.,  72340.,  73528.,
      56760.,  57760.,  58760.,  59760.,  44152.,  44960.,  45768.,  46576.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 1}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x8x8x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      177772., 179144., 180516., 181888., 182525., 183946., 185367., 186788.,
      215796., 217560., 219324., 221088., 220549., 222362., 224175., 225988.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 1}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x8x8x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      76160.,  97080.,  118688., 140952., 148848., 129104., 108800., 87968.,
      115220., 145625., 176590., 208075., 216965., 186970., 156575., 125820.,
      158704., 199400., 240408., 281680., 291172., 249696., 208100., 166432.,
      204820., 256165., 307454., 358631., 368333., 314594., 261135., 208012.,
      251860., 313845., 375326., 436247., 445949., 379778., 314335., 249676.,
      198688., 246620., 293760., 340060., 347200., 294408., 242600., 191824.,
      148260., 183125., 217030., 249935., 254905., 214930., 176075., 138380.,
      102368., 125600., 147824., 169008., 172200., 144032., 117000., 91136.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 2}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x8x8x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {358631., 368333., 436247., 445949.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 2}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x8x8x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      151408., 152320., 192980., 194160., 235912., 237376., 280140., 281904.,
      295820., 297696., 256552., 258208., 216180., 217600., 174768., 175936.,
      228980., 230440., 289375., 291250., 350870., 353180., 413385., 416150.,
      431025., 433930., 371390., 373940., 310975., 313150., 249860., 251640.,
      315272., 317408., 396070., 398800., 477468., 480816., 559370., 563360.,
      578186., 582344., 495756., 499392., 413110., 416200., 330344., 332864.,
      406700., 409640., 508585., 512330., 610330., 614908., 711823., 717262.,
      731031., 736666., 624274., 629188., 518105., 522270., 412636., 416024.,
      499884., 503720., 622825., 627690., 744730., 750652., 865487., 872494.,
      884695., 891898., 753298., 759556., 623385., 628670., 495068., 499352.,
      393704., 397376., 488590., 493240., 581868., 587520., 673442., 680120.,
      687554., 694400., 582876., 588816., 480190., 485200., 379592., 383648.,
      293140., 296520., 361975., 366250., 428870., 434060., 493745., 499870.,
      503545., 509810., 424430., 429860., 347575., 352150., 273060., 276760.,
      201776., 204736., 247460., 251200., 291112., 295648., 332668., 338016.,
      338940., 344400., 283336., 288064., 230020., 234000., 179056., 182272.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 2}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x8x8x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {711823., 717262., 731031., 736666.,
                                         865487., 872494., 884695., 891898.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 2}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x8x8x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      301904.,  302816.,  303728.,  304640.,  384780.,  385960.,  387140.,
      388320.,  470360.,  471824.,  473288.,  474752.,  558516.,  560280.,
      562044.,  563808.,  589764.,  591640.,  593516.,  595392.,  511448.,
      513104.,  514760.,  516416.,  430940.,  432360.,  433780.,  435200.,
      348368.,  349536.,  350704.,  351872.,  456500.,  457960.,  459420.,
      460880.,  576875.,  578750.,  580625.,  582500.,  699430.,  701740.,
      704050.,  706360.,  824005.,  826770.,  829535.,  832300.,  859145.,
      862050.,  864955.,  867860.,  740230.,  742780.,  745330.,  747880.,
      619775.,  621950.,  624125.,  626300.,  497940.,  499720.,  501500.,
      503280.,  628408.,  630544.,  632680.,  634816.,  789410.,  792140.,
      794870.,  797600.,  951588.,  954936.,  958284.,  961632.,  1114750.,
      1118740., 1122730., 1126720., 1152214., 1156372., 1160530., 1164688.,
      987876.,  991512.,  995148.,  998784.,  823130.,  826220.,  829310.,
      832400.,  658168.,  660688.,  663208.,  665728.,  810460.,  813400.,
      816340.,  819280.,  1013425., 1017170., 1020915., 1024660., 1216082.,
      1220660., 1225238., 1229816., 1418207., 1423646., 1429085., 1434524.,
      1456427., 1462062., 1467697., 1473332., 1243634., 1248548., 1253462.,
      1258376., 1032045., 1036210., 1040375., 1044540., 821884.,  825272.,
      828660.,  832048.,  995932.,  999768.,  1003604., 1007440., 1240785.,
      1245650., 1250515., 1255380., 1483538., 1489460., 1495382., 1501304.,
      1723967., 1730974., 1737981., 1744988., 1762187., 1769390., 1776593.,
      1783796., 1500338., 1506596., 1512854., 1519112., 1241485., 1246770.,
      1252055., 1257340., 985852.,  990136.,  994420.,  998704.,  783736.,
      787408.,  791080.,  794752.,  972530.,  977180.,  981830.,  986480.,
      1158084., 1163736., 1169388., 1175040., 1340206., 1346884., 1353562.,
      1360240., 1368262., 1375108., 1381954., 1388800., 1159812., 1165752.,
      1171692., 1177632., 955370.,  960380.,  965390.,  970400.,  755128.,
      759184.,  763240.,  767296.,  582900.,  586280.,  589660.,  593040.,
      719675.,  723950.,  728225.,  732500.,  852550.,  857740.,  862930.,
      868120.,  981365.,  987490.,  993615.,  999740.,  1000825., 1007090.,
      1013355., 1019620., 843430.,  848860.,  854290.,  859720.,  690575.,
      695150.,  699725.,  704300.,  542420.,  546120.,  549820.,  553520.,
      400592.,  403552.,  406512.,  409472.,  491180.,  494920.,  498660.,
      502400.,  577688.,  582224.,  586760.,  591296.,  659988.,  665336.,
      670684.,  676032.,  672420.,  677880.,  683340.,  688800.,  561944.,
      566672.,  571400.,  576128.,  456060.,  460040.,  464020.,  468000.,
      354896.,  358112.,  361328.,  364544.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 2}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x8x8x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1418207., 1423646., 1429085., 1434524., 1456427., 1462062.,
      1467697., 1473332., 1723967., 1730974., 1737981., 1744988.,
      1762187., 1769390., 1776593., 1783796.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 2}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x8x8x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      602784.,  768520.,  939760.,  1116248., 1179192., 1022896., 862120.,
      697120.,  913560.,  1154750., 1400420., 1650250., 1721090., 1483220.,
      1242150., 998200.,  1259696., 1582780., 1908360., 2236052., 2311652.,
      1982376., 1652140., 1321328., 1626856., 2034690., 2442076., 2848566.,
      2925790., 2498860., 2074170., 1652168., 2001384., 2493890., 2982364.,
      3466358., 3543582., 3017644., 2497530., 1983688., 1577840., 1958380.,
      2332584., 2700068., 2756852., 2337480., 1925980., 1522736., 1176280.,
      1452750., 1721540., 1982330., 2021810., 1704500., 1396150., 1097080.,
      811040.,  994920.,  1170736., 1338232., 1363544., 1140208., 925960.,
      721056.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 4}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x8x8x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {2848566., 2925790., 3466358.,
                                         3543582.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 4}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x8x8x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1201952., 1205568., 1532360., 1537040., 1873712., 1879520., 2225496.,
      2232496., 2350936., 2358384., 2039216., 2045792., 1718600., 1724240.,
      1389600., 1394240., 1821320., 1827120., 2302050., 2309500., 2791660.,
      2800840., 3289510., 3300500., 3430630., 3442180., 2956300., 2966440.,
      2475650., 2484300., 1989320., 1996400., 2510896., 2519392., 3154700.,
      3165560., 3803400., 3816720., 4456228., 4472104., 4606756., 4623304.,
      3950280., 3964752., 3291980., 3304280., 2632624., 2642656., 3242008.,
      3253712., 4054470., 4069380., 4865924., 4884152., 5675474., 5697132.,
      5829138., 5851580., 4978148., 4997720., 4131750., 4148340., 3290840.,
      3304336., 3987480., 4002768., 4968390., 4987780., 5941124., 5964728.,
      6904786., 6932716., 7058450., 7087164., 6010340., 6035288., 4973990.,
      4995060., 3950296., 3967376., 3141040., 3155680., 3898220., 3916760.,
      4642632., 4665168., 5373508., 5400136., 5486404., 5513704., 4651272.,
      4674960., 3831980., 3851960., 3029296., 3045472., 2339080., 2352560.,
      2888450., 2905500., 3422380., 3443080., 3940230., 3964660., 4018630.,
      4043620., 3387340., 3409000., 2774050., 2792300., 2179400., 2194160.,
      1610272., 1622080., 1974920., 1989840., 2323376., 2341472., 2655128.,
      2676464., 2705304., 2727088., 2261552., 2280416., 1836040., 1851920.,
      1429280., 1442112.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 4}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x8x8x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {5675474., 5697132., 5829138.,
                                         5851580., 6904786., 6932716.,
                                         7058450., 7087164.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 4}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x8x8x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2400288.,  2403904.,  2407520.,  2411136.,  3060040.,  3064720.,
      3069400.,  3074080.,  3741616.,  3747424.,  3753232.,  3759040.,
      4443992.,  4450992.,  4457992.,  4464992.,  4694424.,  4701872.,
      4709320.,  4716768.,  4071856.,  4078432.,  4085008.,  4091584.,
      3431560.,  3437200.,  3442840.,  3448480.,  2774560.,  2779200.,
      2783840.,  2788480.,  3636840.,  3642640.,  3648440.,  3654240.,
      4596650.,  4604100.,  4611550.,  4619000.,  5574140.,  5583320.,
      5592500.,  5601680.,  6568030.,  6579020.,  6590010.,  6601000.,
      6849710.,  6861260.,  6872810.,  6884360.,  5902460.,  5912600.,
      5922740.,  5932880.,  4942650.,  4951300.,  4959950.,  4968600.,
      3971560.,  3978640.,  3985720.,  3992800.,  5013296.,  5021792.,
      5030288.,  5038784.,  6298540.,  6309400.,  6320260.,  6331120.,
      7593480.,  7606800.,  7620120.,  7633440.,  8896580.,  8912456.,
      8928332.,  8944208.,  9196964.,  9213512.,  9230060.,  9246608.,
      7886088.,  7900560.,  7915032.,  7929504.,  6571660.,  6583960.,
      6596260.,  6608560.,  5255216.,  5265248.,  5275280.,  5285312.,
      6472312.,  6484016.,  6495720.,  6507424.,  8094030.,  8108940.,
      8123850.,  8138760.,  9713620.,  9731848.,  9750076.,  9768304.,
      11329290., 11350948., 11372606., 11394264., 11635834., 11658276.,
      11680718., 11703160., 9936724.,  9956296.,  9975868.,  9995440.,
      8246910.,  8263500.,  8280090.,  8296680.,  6568184.,  6581680.,
      6595176.,  6608672.,  7959672.,  7974960.,  7990248.,  8005536.,
      9917390.,  9936780.,  9956170.,  9975560.,  11858644., 11882248.,
      11905852., 11929456., 13781642., 13809572., 13837502., 13865432.,
      14088186., 14116900., 14145614., 14174328., 11995732., 12020680.,
      12045628., 12070576., 9926910.,  9947980.,  9969050.,  9990120.,
      7883512.,  7900592.,  7917672.,  7934752.,  6267440.,  6282080.,
      6296720.,  6311360.,  7777900.,  7796440.,  7814980.,  7833520.,
      9262728.,  9285264.,  9307800.,  9330336.,  10720388., 10747016.,
      10773644., 10800272., 10945508., 10972808., 11000108., 11027408.,
      9278856.,  9302544.,  9326232.,  9349920.,  7643980.,  7663960.,
      7683940.,  7703920.,  6042416.,  6058592.,  6074768.,  6090944.,
      4664680.,  4678160.,  4691640.,  4705120.,  5759850.,  5776900.,
      5793950.,  5811000.,  6824060.,  6844760.,  6865460.,  6886160.,
      7856030.,  7880460.,  7904890.,  7929320.,  8012270.,  8037260.,
      8062250.,  8087240.,  6753020.,  6774680.,  6796340.,  6818000.,
      5529850.,  5548100.,  5566350.,  5584600.,  4344040.,  4358800.,
      4373560.,  4388320.,  3208736.,  3220544.,  3232352.,  3244160.,
      3934920.,  3949840.,  3964760.,  3979680.,  4628656.,  4646752.,
      4664848.,  4682944.,  5288920.,  5310256.,  5331592.,  5352928.,
      5388824.,  5410608.,  5432392.,  5454176.,  4504240.,  4523104.,
      4541968.,  4560832.,  3656200.,  3672080.,  3687960.,  3703840.,
      2845728.,  2858560.,  2871392.,  2884224.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 4}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x8x8x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      11329290., 11350948., 11372606., 11394264., 11635834., 11658276.,
      11680718., 11703160., 13781642., 13809572., 13837502., 13865432.,
      14088186., 14116900., 14145614., 14174328.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 4}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x8x9x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      10752., 13660., 16648., 19712., 20706., 21700., 18760., 15760., 12704.,
      16280., 20525., 24830., 29190., 30310., 31430., 27020., 22575., 18100.,
      22440., 28140., 33864., 39606., 40803., 42000., 35952., 29910., 23880.,
      28980., 36190., 43372., 50519., 51744., 52969., 45178., 37450., 29792.,
      35658., 44380., 53011., 61544., 62769., 63994., 54439., 45010., 35714.,
      28176., 34935., 41568., 48069., 48972., 49875., 42252., 34785., 27480.,
      21070., 26000., 30785., 35420., 36050., 36680., 30905., 25300., 19870.,
      14592., 17890., 21040., 24038., 24444., 24850., 20776., 16870., 13136.};
  const std::array<int, 4> in_shape = {{1, 8, 9, 1}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x8x9x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {50519., 51744., 52969.,
                                         61544., 62769., 63994.};
  const std::array<int, 4> in_shape = {{1, 8, 9, 1}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x8x9x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      21248.,  21504.,  26990.,  27320.,  32888.,  33296.,  38934.,  39424.,
      40894.,  41412.,  42854.,  43400.,  37040.,  37520.,  31110.,  31520.,
      25072.,  25408.,  32150.,  32560.,  40525.,  41050.,  49015.,  49660.,
      57610.,  58380.,  59815.,  60620.,  62020.,  62860.,  53305.,  54040.,
      44525.,  45150.,  35690.,  36200.,  44280.,  44880.,  55515.,  56280.,
      66792.,  67728.,  78099.,  79212.,  80451.,  81606.,  82803.,  84000.,
      70860.,  71904.,  58935.,  59820.,  47040.,  47760.,  57134.,  57960.,
      71330.,  72380.,  85463.,  86744.,  99519.,  101038., 101920., 103488.,
      104321., 105938., 88949.,  90356.,  73710.,  74900.,  58618.,  59584.,
      70238.,  71316.,  87395.,  88760.,  104363., 106022., 121128., 123088.,
      123529., 125538., 125930., 127988., 107093., 108878., 88515.,  90020.,
      70210.,  71428.,  55320.,  56352.,  68565.,  69870.,  81552.,  83136.,
      94269.,  96138.,  96033.,  97944.,  97797.,  99750.,  82812.,  84504.,
      68145.,  69570.,  53808.,  54960.,  41190.,  42140.,  50800.,  52000.,
      60115.,  61570.,  69125.,  70840.,  70350.,  72100.,  71575.,  73360.,
      60265.,  61810.,  49300.,  50600.,  38690.,  39740.,  28352.,  29184.,
      34730.,  35780.,  40808.,  42080.,  46578.,  48076.,  47362.,  48888.,
      48146.,  49700.,  40208.,  41552.,  32610.,  33740.,  25360.,  26272.};
  const std::array<int, 4> in_shape = {{1, 8, 9, 1}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x8x9x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {99519.,  101038., 101920., 103488.,
                                         104321., 105938., 121128., 123088.,
                                         123529., 125538., 125930., 127988.};
  const std::array<int, 4> in_shape = {{1, 8, 9, 1}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x8x9x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      42240.,  42496.,  42752.,  43008.,  53650.,  53980.,  54310.,  54640.,
      65368.,  65776.,  66184.,  66592.,  77378.,  77868.,  78358.,  78848.,
      81270.,  81788.,  82306.,  82824.,  85162.,  85708.,  86254.,  86800.,
      73600.,  74080.,  74560.,  75040.,  61810.,  62220.,  62630.,  63040.,
      49808.,  50144.,  50480.,  50816.,  63890.,  64300.,  64710.,  65120.,
      80525.,  81050.,  81575.,  82100.,  97385.,  98030.,  98675.,  99320.,
      114450., 115220., 115990., 116760., 118825., 119630., 120435., 121240.,
      123200., 124040., 124880., 125720., 105875., 106610., 107345., 108080.,
      88425.,  89050.,  89675.,  90300.,  70870.,  71380.,  71890.,  72400.,
      87960.,  88560.,  89160.,  89760.,  110265., 111030., 111795., 112560.,
      132648., 133584., 134520., 135456., 155085., 156198., 157311., 158424.,
      159747., 160902., 162057., 163212., 164409., 165606., 166803., 168000.,
      140676., 141720., 142764., 143808., 116985., 117870., 118755., 119640.,
      93360.,  94080.,  94800.,  95520.,  113442., 114268., 115094., 115920.,
      141610., 142660., 143710., 144760., 169645., 170926., 172207., 173488.,
      197519., 199038., 200557., 202076., 202272., 203840., 205408., 206976.,
      207025., 208642., 210259., 211876., 176491., 177898., 179305., 180712.,
      146230., 147420., 148610., 149800., 116270., 117236., 118202., 119168.,
      139398., 140476., 141554., 142632., 173425., 174790., 176155., 177520.,
      207067., 208726., 210385., 212044., 240296., 242256., 244216., 246176.,
      245049., 247058., 249067., 251076., 249802., 251860., 253918., 255976.,
      212401., 214186., 215971., 217756., 175525., 177030., 178535., 180040.,
      139202., 140420., 141638., 142856., 109608., 110640., 111672., 112704.,
      135825., 137130., 138435., 139740., 161520., 163104., 164688., 166272.,
      186669., 188538., 190407., 192276., 190155., 192066., 193977., 195888.,
      193641., 195594., 197547., 199500., 163932., 165624., 167316., 169008.,
      134865., 136290., 137715., 139140., 106464., 107616., 108768., 109920.,
      81430.,  82380.,  83330.,  84280.,  100400., 101600., 102800., 104000.,
      118775., 120230., 121685., 123140., 136535., 138250., 139965., 141680.,
      138950., 140700., 142450., 144200., 141365., 143150., 144935., 146720.,
      118985., 120530., 122075., 123620., 97300.,  98600.,  99900.,  101200.,
      76330.,  77380.,  78430.,  79480.,  55872.,  56704.,  57536.,  58368.,
      68410.,  69460.,  70510.,  71560.,  80344.,  81616.,  82888.,  84160.,
      91658.,  93156.,  94654.,  96152.,  93198.,  94724.,  96250.,  97776.,
      94738.,  96292.,  97846.,  99400.,  79072.,  80416.,  81760.,  83104.,
      64090.,  65220.,  66350.,  67480.,  49808.,  50720.,  51632.,  52544.};
  const std::array<int, 4> in_shape = {{1, 8, 9, 1}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x8x9x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      197519., 199038., 200557., 202076., 202272., 203840., 205408., 206976.,
      207025., 208642., 210259., 211876., 240296., 242256., 244216., 246176.,
      245049., 247058., 249067., 251076., 249802., 251860., 253918., 255976.};
  const std::array<int, 4> in_shape = {{1, 8, 9, 1}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x8x9x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      84336.,  107180., 130664., 154756., 162652., 170548., 147464., 123900.,
      99888.,  128100., 161525., 195430., 229775., 238665., 247555., 212830.,
      177825., 142580., 176904., 221850., 266988., 312270., 321762., 331254.,
      283548., 235890., 188328., 228732., 285635., 342314., 398713., 408415.,
      418117., 356594., 295575., 235116., 281652., 350525., 418670., 486031.,
      495733., 505435., 429926., 355425., 281988., 222264., 275550., 327828.,
      379050., 386190., 393330., 333156., 274230., 216600., 165900., 204675.,
      242290., 278705., 283675., 288645., 243130., 198975., 156220., 114576.,
      140420., 165080., 188524., 191716., 194908., 162872., 132180., 102864.};
  const std::array<int, 4> in_shape = {{1, 8, 9, 2}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x8x9x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {398713., 408415., 418117.,
                                         486031., 495733., 505435.};
  const std::array<int, 4> in_shape = {{1, 8, 9, 2}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x8x9x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      167664., 168672., 213060.,  214360.,  259720., 261328., 307580., 309512.,
      323260., 325304., 338940.,  341096.,  293032., 294928., 246180., 247800.,
      198448., 199776., 254580.,  256200.,  320975., 323050., 388310., 390860.,
      456505., 459550., 474145.,  477330.,  491785., 495110., 422750., 425660.,
      353175., 355650., 283140.,  285160.,  351432., 353808., 440670., 443700.,
      530268., 533976., 620130.,  624540.,  638946., 643524., 657762., 662508.,
      562956., 567096., 468270.,  471780.,  373800., 376656., 454188., 457464.,
      567105., 571270., 679546.,  684628.,  791399., 797426., 810607., 816830.,
      829815., 836234., 707602.,  713188.,  586425., 591150., 466396., 470232.,
      559020., 563304., 695625.,  701050.,  830746., 837340., 964271., 972062.,
      983479., 991466., 1002687., 1010870., 852754., 859852., 704865., 710850.,
      559132., 563976., 440424.,  444528.,  545910., 551100., 649356., 655656.,
      750666., 758100., 764778.,  772380.,  778890., 786660., 659580., 666312.,
      542790., 548460., 428616.,  433200.,  328020., 331800., 404575., 409350.,
      478790., 484580., 550585.,  557410.,  560385., 567350., 570185., 577290.,
      480110., 486260., 392775.,  397950.,  308260., 312440., 225840., 229152.,
      276660., 280840., 325096.,  330160.,  371084., 377048., 377356., 383432.,
      383628., 389816., 320392.,  325744.,  259860., 264360., 202096., 205728.};
  const std::array<int, 4> in_shape = {{1, 8, 9, 2}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x8x9x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {791399., 797426., 810607.,  816830.,
                                         829815., 836234., 964271.,  972062.,
                                         983479., 991466., 1002687., 1010870.};
  const std::array<int, 4> in_shape = {{1, 8, 9, 2}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x8x9x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      334320.,  335328.,  336336.,  337344.,  424820.,  426120.,  427420.,
      428720.,  517832.,  519440.,  521048.,  522656.,  613228.,  615160.,
      617092.,  619024.,  644476.,  646520.,  648564.,  650608.,  675724.,
      677880.,  680036.,  682192.,  584168.,  586064.,  587960.,  589856.,
      490740.,  492360.,  493980.,  495600.,  395568.,  396896.,  398224.,
      399552.,  507540.,  509160.,  510780.,  512400.,  639875.,  641950.,
      644025.,  646100.,  774070.,  776620.,  779170.,  781720.,  909965.,
      913010.,  916055.,  919100.,  945105.,  948290.,  951475.,  954660.,
      980245.,  983570.,  986895.,  990220.,  842590.,  845500.,  848410.,
      851320.,  703875.,  706350.,  708825.,  711300.,  564260.,  566280.,
      568300.,  570320.,  700488.,  702864.,  705240.,  707616.,  878310.,
      881340.,  884370.,  887400.,  1056828., 1060536., 1064244., 1067952.,
      1235850., 1240260., 1244670., 1249080., 1273314., 1277892., 1282470.,
      1287048., 1310778., 1315524., 1320270., 1325016., 1121772., 1125912.,
      1130052., 1134192., 933030.,  936540.,  940050.,  943560.,  744744.,
      747600.,  750456.,  753312.,  905100.,  908376.,  911652.,  914928.,
      1130045., 1134210., 1138375., 1142540., 1354010., 1359092., 1364174.,
      1369256., 1576771., 1582798., 1588825., 1594852., 1614991., 1621214.,
      1627437., 1633660., 1653211., 1659630., 1666049., 1672468., 1409618.,
      1415204., 1420790., 1426376., 1168125., 1172850., 1177575., 1182300.,
      928956.,  932792.,  936628.,  940464.,  1113756., 1118040., 1122324.,
      1126608., 1385825., 1391250., 1396675., 1402100., 1654898., 1661492.,
      1668086., 1674680., 1920751., 1928542., 1936333., 1944124., 1958971.,
      1966958., 1974945., 1982932., 1997191., 2005374., 2013557., 2021740.,
      1698410., 1705508., 1712606., 1719704., 1403745., 1409730., 1415715.,
      1421700., 1113420., 1118264., 1123108., 1127952., 876744.,  880848.,
      884952.,  889056.,  1086630., 1091820., 1097010., 1102200., 1292412.,
      1298712., 1305012., 1311312., 1493898., 1501332., 1508766., 1516200.,
      1521954., 1529556., 1537158., 1544760., 1550010., 1557780., 1565550.,
      1573320., 1312428., 1319160., 1325892., 1332624., 1079910., 1085580.,
      1091250., 1096920., 852648.,  857232.,  861816.,  866400.,  652260.,
      656040.,  659820.,  663600.,  804375.,  809150.,  813925.,  818700.,
      951790.,  957580.,  963370.,  969160.,  1094345., 1101170., 1107995.,
      1114820., 1113805., 1120770., 1127735., 1134700., 1133265., 1140370.,
      1147475., 1154580., 954070.,  960220.,  966370.,  972520.,  780375.,
      785550.,  790725.,  795900.,  612340.,  616520.,  620700.,  624880.,
      448368.,  451680.,  454992.,  458304.,  549140.,  553320.,  557500.,
      561680.,  645128.,  650192.,  655256.,  660320.,  736204.,  742168.,
      748132.,  754096.,  748636.,  754712.,  760788.,  766864.,  761068.,
      767256.,  773444.,  779632.,  635432.,  640784.,  646136.,  651488.,
      515220.,  519720.,  524220.,  528720.,  400560.,  404192.,  407824.,
      411456.};
  const std::array<int, 4> in_shape = {{1, 8, 9, 2}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x8x9x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1576771., 1582798., 1588825., 1594852., 1614991., 1621214.,
      1627437., 1633660., 1653211., 1659630., 1666049., 1672468.,
      1920751., 1928542., 1936333., 1944124., 1958971., 1966958.,
      1974945., 1982932., 1997191., 2005374., 2013557., 2021740.};
  const std::array<int, 4> in_shape = {{1, 8, 9, 2}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x8x9x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      668000.,  849080.,  1035280., 1226344., 1289288., 1352232., 1169296.,
      982520.,  792160.,  1016280., 1281550., 1550660., 1823290., 1894130.,
      1964970., 1689380., 1411550., 1131800., 1404816., 1761780., 2120280.,
      2479932., 2555532., 2631132., 2252184., 1873620., 1495824., 1817480.,
      2269610., 2719948., 3168046., 3245270., 3322494., 2833516., 2348570.,
      1868104., 2238824., 2786210., 3327772., 3863062., 3940286., 4017510.,
      3417148., 2824850., 2241064., 1765584., 2188740., 2603832., 3010476.,
      3067260., 3124044., 2645880., 2177700., 1719888., 1316600., 1624150.,
      1922420., 2211090., 2250570., 2290050., 1928660., 1578150., 1238840.,
      908000.,  1112600., 1307728., 1493128., 1518440., 1543752., 1289680.,
      1046360., 814048.};
  const std::array<int, 4> in_shape = {{1, 8, 9, 4}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x8x9x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {3168046., 3245270., 3322494.,
                                         3863062., 3940286., 4017510.};
  const std::array<int, 4> in_shape = {{1, 8, 9, 4}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x8x9x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1332000., 1336000., 1693000., 1698160., 2064176., 2070560., 2445016.,
      2452688., 2570456., 2578576., 2695896., 2704464., 2331056., 2338592.,
      1958600., 1965040., 1579040., 1584320., 2026120., 2032560., 2554850.,
      2563100., 3091180., 3101320., 3634470., 3646580., 3775590., 3788260.,
      3916710., 3929940., 3367180., 3378760., 2813250., 2823100., 2255560.,
      2263600., 2800176., 2809632., 3511500., 3523560., 4225800., 4240560.,
      4942308., 4959864., 5092836., 5111064., 5243364., 5262264., 4487880.,
      4504368., 3733260., 3747240., 2980272., 2991648., 3621912., 3634960.,
      4522630., 4539220., 5419652., 5439896., 6312082., 6336092., 6465746.,
      6490540., 6619410., 6644988., 5644772., 5667032., 4678310., 4697140.,
      3720920., 3736208., 4460568., 4477648., 5550790., 5572420., 6629252.,
      6655544., 7695058., 7726124., 7848722., 7880572., 8002386., 8035020.,
      6805988., 6834296., 5625830., 5649700., 4462808., 4482128., 3514800.,
      3531168., 4356780., 4377480., 5182536., 5207664., 5991300., 6020952.,
      6104196., 6134520., 6217092., 6248088., 5264904., 5291760., 4332780.,
      4355400., 3421488., 3439776., 2618120., 2633200., 3229250., 3248300.,
      3821740., 3844840., 4394950., 4422180., 4473350., 4501140., 4551750.,
      4580100., 3832780., 3857320., 3135650., 3156300., 2461000., 2477680.,
      1802784., 1816000., 2208520., 2225200., 2595248., 2615456., 2962456.,
      2986256., 3012632., 3036880., 3062808., 3087504., 2558000., 2579360.,
      2074760., 2092720., 1613600., 1628096.};
  const std::array<int, 4> in_shape = {{1, 8, 9, 4}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x8x9x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6312082., 6336092., 6465746., 6490540., 6619410., 6644988.,
      7695058., 7726124., 7848722., 7880572., 8002386., 8035020.};
  const std::array<int, 4> in_shape = {{1, 8, 9, 4}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x8x9x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2660000.,  2664000.,  2668000.,  2672000.,  3380840.,  3386000.,
      3391160.,  3396320.,  4121968.,  4128352.,  4134736.,  4141120.,
      4882360.,  4890032.,  4897704.,  4905376.,  5132792.,  5140912.,
      5149032.,  5157152.,  5383224.,  5391792.,  5400360.,  5408928.,
      4654576.,  4662112.,  4669648.,  4677184.,  3910760.,  3917200.,
      3923640.,  3930080.,  3152800.,  3158080.,  3163360.,  3168640.,
      4045800.,  4052240.,  4058680.,  4065120.,  5101450.,  5109700.,
      5117950.,  5126200.,  6172220.,  6182360.,  6192500.,  6202640.,
      7256830.,  7268940.,  7281050.,  7293160.,  7538510.,  7551180.,
      7563850.,  7576520.,  7820190.,  7833420.,  7846650.,  7859880.,
      6722780.,  6734360.,  6745940.,  6757520.,  5616650.,  5626500.,
      5636350.,  5646200.,  4503080.,  4511120.,  4519160.,  4527200.,
      5590896.,  5600352.,  5609808.,  5619264.,  7010940.,  7023000.,
      7035060.,  7047120.,  8436840.,  8451600.,  8466360.,  8481120.,
      9867060.,  9884616.,  9902172.,  9919728.,  10167444., 10185672.,
      10203900., 10222128., 10467828., 10486728., 10505628., 10524528.,
      8959272.,  8975760.,  8992248.,  9008736.,  7452540.,  7466520.,
      7480500.,  7494480.,  5949168.,  5960544.,  5971920.,  5983296.,
      7230776.,  7243824.,  7256872.,  7269920.,  9028670.,  9045260.,
      9061850.,  9078440.,  10819060., 10839304., 10859548., 10879792.,
      12600154., 12624164., 12648174., 12672184., 12906698., 12931492.,
      12956286., 12981080., 13213242., 13238820., 13264398., 13289976.,
      11267284., 11289544., 11311804., 11334064., 9337790.,  9356620.,
      9375450.,  9394280.,  7426552.,  7441840.,  7457128.,  7472416.,
      8904056.,  8921136.,  8938216.,  8955296.,  11079950., 11101580.,
      11123210., 11144840., 13232212., 13258504., 13284796., 13311088.,
      15359050., 15390116., 15421182., 15452248., 15665594., 15697444.,
      15729294., 15761144., 15972138., 16004772., 16037406., 16070040.,
      13583668., 13611976., 13640284., 13668592., 11227790., 11251660.,
      11275530., 11299400., 8906296.,  8925616.,  8944936.,  8964256.,
      7013232.,  7029600.,  7045968.,  7062336.,  8692860.,  8713560.,
      8734260.,  8754960.,  10339944., 10365072., 10390200., 10415328.,
      11952948., 11982600., 12012252., 12041904., 12178068., 12208392.,
      12238716., 12269040., 12403188., 12434184., 12465180., 12496176.,
      10502952., 10529808., 10556664., 10583520., 8642940.,  8665560.,
      8688180.,  8710800.,  6824688.,  6842976.,  6861264.,  6879552.,
      5221160.,  5236240.,  5251320.,  5266400.,  6439450.,  6458500.,
      6477550.,  6496600.,  7620380.,  7643480.,  7666580.,  7689680.,
      8762670.,  8789900.,  8817130.,  8844360.,  8918910.,  8946700.,
      8974490.,  9002280.,  9075150.,  9103500.,  9131850.,  9160200.,
      7641020.,  7665560.,  7690100.,  7714640.,  6250650.,  6271300.,
      6291950.,  6312600.,  4905320.,  4922000.,  4938680.,  4955360.,
      3592352.,  3605568.,  3618784.,  3632000.,  4400360.,  4417040.,
      4433720.,  4450400.,  5170288.,  5190496.,  5210704.,  5230912.,
      5901112.,  5924912.,  5948712.,  5972512.,  6001016.,  6025264.,
      6049512.,  6073760.,  6100920.,  6125616.,  6150312.,  6175008.,
      5094640.,  5116000.,  5137360.,  5158720.,  4131560.,  4149520.,
      4167480.,  4185440.,  3212704.,  3227200.,  3241696.,  3256192.};
  const std::array<int, 4> in_shape = {{1, 8, 9, 4}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x8x9x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      12600154., 12624164., 12648174., 12672184., 12906698., 12931492.,
      12956286., 12981080., 13213242., 13238820., 13264398., 13289976.,
      15359050., 15390116., 15421182., 15452248., 15665594., 15697444.,
      15729294., 15761144., 15972138., 16004772., 16037406., 16070040.};
  const std::array<int, 4> in_shape = {{1, 8, 9, 4}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x8x10x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      11780., 14930., 18154., 21448., 22442., 23436., 24430., 21070., 17660.,
      14204., 17900., 22525., 27200., 31920., 33040., 34160., 35280., 30275.,
      25250., 20210., 24730., 30965., 37209., 43456., 44653., 45850., 47047.,
      40215., 33410., 26638., 31990., 39900., 47761., 55566., 56791., 58016.,
      59241., 50470., 41790., 33208., 39410., 49000., 58471., 67816., 69041.,
      70266., 71491., 60760., 50190., 39788., 31150., 38585., 45867., 52990.,
      53893., 54796., 55699., 47145., 38780., 30610., 23300., 28725., 33980.,
      39060., 39690., 40320., 40950., 34475., 28200., 22130., 16140., 19770.,
      23230., 26516., 26922., 27328., 27734., 23170., 18800., 14628.};
  const std::array<int, 4> in_shape = {{1, 8, 10, 1}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x8x10x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {55566., 56791., 58016., 59241.,
                                         67816., 69041., 70266., 71491.};
  const std::array<int, 4> in_shape = {{1, 8, 10, 1}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x8x10x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      23280.,  23560.,  29500.,  29860.,  35864.,  36308.,  42364.,  42896.,
      44324.,  44884.,  46284.,  46872.,  48244.,  48860.,  41600.,  42140.,
      34860.,  35320.,  28032.,  28408.,  35350.,  35800.,  44475.,  45050.,
      53695.,  54400.,  63000.,  63840.,  65205.,  66080.,  67410.,  68320.,
      69615.,  70560.,  59725.,  60550.,  49800.,  50500.,  39850.,  40420.,
      48800.,  49460.,  61090.,  61930.,  73392.,  74418.,  85694.,  86912.,
      88046.,  89306.,  90398.,  91700.,  92750.,  94094.,  79260.,  80430.,
      65830.,  66820.,  52472.,  53276.,  63070.,  63980.,  78645.,  79800.,
      94115.,  95522.,  109466., 111132., 111867., 113582., 114268., 116032.,
      116669., 118482., 99365.,  100940., 82250.,  83580.,  65338.,  66416.,
      77630.,  78820.,  96495.,  98000.,  115115., 116942., 133476., 135632.,
      135877., 138082., 138278., 140532., 140679., 142982., 119525., 121520.,
      98700.,  100380., 78218.,  79576.,  61160.,  62300.,  75730.,  77170.,
      89988.,  91734.,  103922., 105980., 105686., 107786., 107450., 109592.,
      109214., 111398., 92400.,  94290.,  75970.,  77560.,  59936.,  61220.,
      45550.,  46600.,  56125.,  57450.,  66355.,  67960.,  76230.,  78120.,
      77455.,  79380.,  78680.,  80640.,  79905.,  81900.,  67225.,  68950.,
      54950.,  56400.,  43090.,  44260.,  31360.,  32280.,  38380.,  39540.,
      45056.,  46460.,  51380.,  53032.,  52164.,  53844.,  52948.,  54656.,
      53732.,  55468.,  44840.,  46340.,  36340.,  37600.,  28240.,  29256.};
  const std::array<int, 4> in_shape = {{1, 8, 10, 1}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x8x10x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      109466., 111132., 111867., 113582., 114268., 116032., 116669., 118482.,
      133476., 135632., 135877., 138082., 138278., 140532., 140679., 142982.};
  const std::array<int, 4> in_shape = {{1, 8, 10, 1}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x8x10x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      46280.,  46560.,  46840.,  47120.,  58640.,  59000.,  59360.,  59720.,
      71284.,  71728.,  72172.,  72616.,  84196.,  84728.,  85260.,  85792.,
      88088.,  88648.,  89208.,  89768.,  91980.,  92568.,  93156.,  93744.,
      95872.,  96488.,  97104.,  97720.,  82660.,  83200.,  83740.,  84280.,
      69260.,  69720.,  70180.,  70640.,  55688.,  56064.,  56440.,  56816.,
      70250.,  70700.,  71150.,  71600.,  88375.,  88950.,  89525.,  90100.,
      106685., 107390., 108095., 108800., 125160., 126000., 126840., 127680.,
      129535., 130410., 131285., 132160., 133910., 134820., 135730., 136640.,
      138285., 139230., 140175., 141120., 118625., 119450., 120275., 121100.,
      98900.,  99600.,  100300., 101000., 79130.,  79700.,  80270.,  80840.,
      96940.,  97600.,  98260.,  98920.,  121340., 122180., 123020., 123860.,
      145758., 146784., 147810., 148836., 170170., 171388., 172606., 173824.,
      174832., 176092., 177352., 178612., 179494., 180796., 182098., 183400.,
      184156., 185500., 186844., 188188., 157350., 158520., 159690., 160860.,
      130670., 131660., 132650., 133640., 104140., 104944., 105748., 106552.,
      125230., 126140., 127050., 127960., 156135., 157290., 158445., 159600.,
      186823., 188230., 189637., 191044., 217266., 218932., 220598., 222264.,
      222019., 223734., 225449., 227164., 226772., 228536., 230300., 232064.,
      231525., 233338., 235151., 236964., 197155., 198730., 200305., 201880.,
      163170., 164500., 165830., 167160., 129598., 130676., 131754., 132832.,
      154070., 155260., 156450., 157640., 191485., 192990., 194495., 196000.,
      228403., 230230., 232057., 233884., 264796., 266952., 269108., 271264.,
      269549., 271754., 273959., 276164., 274302., 276556., 278810., 281064.,
      279055., 281358., 283661., 285964., 237055., 239050., 241045., 243040.,
      195720., 197400., 199080., 200760., 155078., 156436., 157794., 159152.,
      121180., 122320., 123460., 124600., 150020., 151460., 152900., 154340.,
      178230., 179976., 181722., 183468., 205786., 207844., 209902., 211960.,
      209272., 211372., 213472., 215572., 212758., 214900., 217042., 219184.,
      216244., 218428., 220612., 222796., 182910., 184800., 186690., 188580.,
      150350., 151940., 153530., 155120., 118588., 119872., 121156., 122440.,
      90050.,  91100.,  92150.,  93200.,  110925., 112250., 113575., 114900.,
      131105., 132710., 134315., 135920., 150570., 152460., 154350., 156240.,
      152985., 154910., 156835., 158760., 155400., 157360., 159320., 161280.,
      157815., 159810., 161805., 163800., 132725., 134450., 136175., 137900.,
      108450., 109900., 111350., 112800., 85010.,  86180.,  87350.,  88520.,
      61800.,  62720.,  63640.,  64560.,  75600.,  76760.,  77920.,  79080.,
      88708.,  90112.,  91516.,  92920.,  101108., 102760., 104412., 106064.,
      102648., 104328., 106008., 107688., 104188., 105896., 107604., 109312.,
      105728., 107464., 109200., 110936., 88180.,  89680.,  91180.,  92680.,
      71420.,  72680.,  73940.,  75200.,  55464.,  56480.,  57496.,  58512.};
  const std::array<int, 4> in_shape = {{1, 8, 10, 1}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x8x10x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      217266., 218932., 220598., 222264., 222019., 223734., 225449., 227164.,
      226772., 228536., 230300., 232064., 231525., 233338., 235151., 236964.,
      264796., 266952., 269108., 271264., 269549., 271754., 273959., 276164.,
      274302., 276556., 278810., 281064., 279055., 281358., 283661., 285964.};
  const std::array<int, 4> in_shape = {{1, 8, 10, 1}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x8x10x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      92512.,  117280., 142640., 168560., 176456., 184352., 192248., 165824.,
      139000., 111808., 140980., 177425., 214270., 251475., 260365., 269255.,
      278145., 238690., 199075., 159340., 195104., 244300., 293568., 342860.,
      352352., 361844., 371336., 317400., 263680., 210224., 252644., 315105.,
      377174., 438795., 448497., 458199., 467901., 398594., 330015., 262220.,
      311444., 387205., 462014., 535815., 545517., 555219., 564921., 480074.,
      396515., 314300., 245840., 304480., 361896., 418040., 425180., 432320.,
      439460., 371904., 305860., 241376., 183540., 226225., 267550., 307475.,
      312445., 317415., 322385., 271330., 221875., 174060., 126784., 155240.,
      182336., 208040., 211232., 214424., 217616., 181712., 147360., 114592.};
  const std::array<int, 4> in_shape = {{1, 8, 10, 2}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x8x10x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {438795., 448497., 458199., 467901.,
                                         535815., 545517., 555219., 564921.};
  const std::array<int, 4> in_shape = {{1, 8, 10, 2}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x8x10x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      183920.,  185024.,  233140.,  234560.,  283528.,  285280.,  335020.,
      337120.,  350700.,  352912.,  366380.,  368704.,  382060.,  384496.,
      329512.,  331648.,  276180.,  278000.,  222128.,  223616.,  280180.,
      281960.,  352575.,  354850.,  425750.,  428540.,  499625.,  502950.,
      517265.,  520730.,  534905.,  538510.,  552545.,  556290.,  474110.,
      477380.,  395375.,  398150.,  316420.,  318680.,  387592.,  390208.,
      485270.,  488600.,  583068.,  587136.,  680890.,  685720.,  699706.,
      704704.,  718522.,  723688.,  737338.,  742672.,  630156.,  634800.,
      523430.,  527360.,  417256.,  420448.,  501676.,  505288.,  625625.,
      630210.,  748762.,  754348.,  870975.,  877590.,  890183.,  896994.,
      909391.,  916398.,  928599.,  935802.,  790930.,  797188.,  654745.,
      660030.,  520156.,  524440.,  618156.,  622888.,  768425.,  774410.,
      916762.,  924028.,  1063055., 1071630., 1082263., 1091034., 1101471.,
      1110438., 1120679., 1129842., 952210.,  960148.,  786345.,  793030.,
      623196.,  628600.,  487144.,  491680.,  603230.,  608960.,  716844.,
      723792.,  827890.,  836080.,  842002.,  850360.,  856114.,  864640.,
      870226.,  878920.,  736284.,  743808.,  605390.,  611720.,  477640.,
      482752.,  362900.,  367080.,  447175.,  452450.,  528710.,  535100.,
      607425.,  614950.,  617225.,  624890.,  627025.,  634830.,  636825.,
      644770.,  535790.,  542660.,  437975.,  443750.,  343460.,  348120.,
      249904.,  253568.,  305860.,  310480.,  359080.,  364672.,  409500.,
      416080.,  415772.,  422464.,  422044.,  428848.,  428316.,  435232.,
      357448.,  363424.,  289700.,  294720.,  225136.,  229184.};
  const std::array<int, 4> in_shape = {{1, 8, 10, 2}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x8x10x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      870975.,  877590.,  890183.,  896994.,  909391.,  916398.,
      928599.,  935802.,  1063055., 1071630., 1082263., 1091034.,
      1101471., 1110438., 1120679., 1129842.};
  const std::array<int, 4> in_shape = {{1, 8, 10, 2}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x8x10x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      366736.,  367840.,  368944.,  370048.,  464860.,  466280.,  467700.,
      469120.,  565304.,  567056.,  568808.,  570560.,  667940.,  670040.,
      672140.,  674240.,  699188.,  701400.,  703612.,  705824.,  730436.,
      732760.,  735084.,  737408.,  761684.,  764120.,  766556.,  768992.,
      656888.,  659024.,  661160.,  663296.,  550540.,  552360.,  554180.,
      556000.,  442768.,  444256.,  445744.,  447232.,  558580.,  560360.,
      562140.,  563920.,  702875.,  705150.,  707425.,  709700.,  848710.,
      851500.,  854290.,  857080.,  995925.,  999250.,  1002575., 1005900.,
      1031065., 1034530., 1037995., 1041460., 1066205., 1069810., 1073415.,
      1077020., 1101345., 1105090., 1108835., 1112580., 944950.,  948220.,
      951490.,  954760.,  787975.,  790750.,  793525.,  796300.,  630580.,
      632840.,  635100.,  637360.,  772568.,  775184.,  777800.,  780416.,
      967210.,  970540.,  973870.,  977200.,  1162068., 1166136., 1170204.,
      1174272., 1356950., 1361780., 1366610., 1371440., 1394414., 1399412.,
      1404410., 1409408., 1431878., 1437044., 1442210., 1447376., 1469342.,
      1474676., 1480010., 1485344., 1255668., 1260312., 1264956., 1269600.,
      1042930., 1046860., 1050790., 1054720., 831320.,  834512.,  837704.,
      840896.,  999740.,  1003352., 1006964., 1010576., 1246665., 1251250.,
      1255835., 1260420., 1491938., 1497524., 1503110., 1508696., 1735335.,
      1741950., 1748565., 1755180., 1773555., 1780366., 1787177., 1793988.,
      1811775., 1818782., 1825789., 1832796., 1849995., 1857198., 1864401.,
      1871604., 1575602., 1581860., 1588118., 1594376., 1304205., 1309490.,
      1314775., 1320060., 1036028., 1040312., 1044596., 1048880., 1231580.,
      1236312., 1241044., 1245776., 1530865., 1536850., 1542835., 1548820.,
      1826258., 1833524., 1840790., 1848056., 2117535., 2126110., 2134685.,
      2143260., 2155755., 2164526., 2173297., 2182068., 2193975., 2202942.,
      2211909., 2220876., 2232195., 2241358., 2250521., 2259684., 1896482.,
      1904420., 1912358., 1920296., 1566005., 1572690., 1579375., 1586060.,
      1240988., 1246392., 1251796., 1257200., 969752.,  974288.,  978824.,
      983360.,  1200730., 1206460., 1212190., 1217920., 1426740., 1433688.,
      1440636., 1447584., 1647590., 1655780., 1663970., 1672160., 1675646.,
      1684004., 1692362., 1700720., 1703702., 1712228., 1720754., 1729280.,
      1731758., 1740452., 1749146., 1757840., 1465044., 1472568., 1480092.,
      1487616., 1204450., 1210780., 1217110., 1223440., 950168.,  955280.,
      960392.,  965504.,  721620.,  725800.,  729980.,  734160.,  889075.,
      894350.,  899625.,  904900.,  1051030., 1057420., 1063810., 1070200.,
      1207325., 1214850., 1222375., 1229900., 1226785., 1234450., 1242115.,
      1249780., 1246245., 1254050., 1261855., 1269660., 1265705., 1273650.,
      1281595., 1289540., 1064710., 1071580., 1078450., 1085320., 870175.,
      875950.,  881725.,  887500.,  682260.,  686920.,  691580.,  696240.,
      496144.,  499808.,  503472.,  507136.,  607100.,  611720.,  616340.,
      620960.,  712568.,  718160.,  723752.,  729344.,  812420.,  819000.,
      825580.,  832160.,  824852.,  831544.,  838236.,  844928.,  837284.,
      844088.,  850892.,  857696.,  849716.,  856632.,  863548.,  870464.,
      708920.,  714896.,  720872.,  726848.,  574380.,  579400.,  584420.,
      589440.,  446224.,  450272.,  454320.,  458368.};
  const std::array<int, 4> in_shape = {{1, 8, 10, 2}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x8x10x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1735335., 1741950., 1748565., 1755180., 1773555., 1780366., 1787177.,
      1793988., 1811775., 1818782., 1825789., 1832796., 1849995., 1857198.,
      1864401., 1871604., 2117535., 2126110., 2134685., 2143260., 2155755.,
      2164526., 2173297., 2182068., 2193975., 2202942., 2211909., 2220876.,
      2232195., 2241358., 2250521., 2259684.};
  const std::array<int, 4> in_shape = {{1, 8, 10, 2}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x8x10x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      733216.,  929640.,  1130800., 1336440., 1399384., 1462328., 1525272.,
      1315696., 1102920., 887200.,  1119000., 1408350., 1700900., 1996330.,
      2067170., 2138010., 2208850., 1895540., 1580950., 1265400., 1549936.,
      1940780., 2332200., 2723812., 2799412., 2875012., 2950612., 2521992.,
      2095100., 1670320., 2008104., 2504530., 2997820., 3487526., 3564750.,
      3641974., 3719198., 3168172., 2622970., 2084040., 2476264., 3078530.,
      3673180., 4259766., 4336990., 4414214., 4491438., 3816652., 3152170.,
      2498440., 1953328., 2419100., 2875080., 3320884., 3377668., 3434452.,
      3491236., 2954280., 2429420., 1917040., 1456920., 1795550., 2123300.,
      2439850., 2479330., 2518810., 2558290., 2152820., 1760150., 1380600.,
      1004960., 1230280., 1444720., 1648024., 1673336., 1698648., 1723960.,
      1439152., 1166760., 907040.};
  const std::array<int, 4> in_shape = {{1, 8, 10, 4}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x8x10x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {3487526., 3564750., 3641974.,
                                         3719198., 4259766., 4336990.,
                                         4414214., 4491438.};
  const std::array<int, 4> in_shape = {{1, 8, 10, 4}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x8x10x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1462048., 1466432., 1853640., 1859280., 2254640., 2261600., 2664536.,
      2672880., 2789976., 2798768., 2915416., 2924656., 3040856., 3050544.,
      2622896., 2631392., 2198600., 2205840., 1768480., 1774400., 2230920.,
      2238000., 2807650., 2816700., 3390700., 3401800., 3979430., 3992660.,
      4120550., 4134340., 4261670., 4276020., 4402790., 4417700., 3778060.,
      3791080., 3150850., 3161900., 2521800., 2530800., 3089456., 3099872.,
      3868300., 3881560., 4648200., 4664400., 5428388., 5447624., 5578916.,
      5598824., 5729444., 5750024., 5879972., 5901224., 5025480., 5043984.,
      4174540., 4190200., 3327920., 3340640., 4001816., 4016208., 4990790.,
      5009060., 5973380., 5995640., 6948690., 6975052., 7102354., 7129500.,
      7256018., 7283948., 7409682., 7438396., 6311396., 6336344., 5224870.,
      5245940., 4151000., 4168080., 4933656., 4952528., 6133190., 6157060.,
      7317380., 7346360., 8485330., 8519532., 8638994., 8673980., 8792658.,
      8828428., 8946322., 8982876., 7601636., 7633304., 6277670., 6304340.,
      4975320., 4996880., 3888560., 3906656., 4815340., 4838200., 5722440.,
      5750160., 6609092., 6641768., 6721988., 6755336., 6834884., 6868904.,
      6947780., 6982472., 5878536., 5908560., 4833580., 4858840., 3813680.,
      3834080., 2897160., 2913840., 3570050., 3591100., 4221100., 4246600.,
      4849670., 4879700., 4928070., 4958660., 5006470., 5037620., 5084870.,
      5116580., 4278220., 4305640., 3497250., 3520300., 2742600., 2761200.,
      1995296., 2009920., 2442120., 2460560., 2867120., 2889440., 3269784.,
      3296048., 3319960., 3346672., 3370136., 3397296., 3420312., 3447920.,
      2854448., 2878304., 2313480., 2333520., 1797920., 1814080.};
  const std::array<int, 4> in_shape = {{1, 8, 10, 4}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x8x10x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6948690., 6975052., 7102354., 7129500., 7256018., 7283948.,
      7409682., 7438396., 8485330., 8519532., 8638994., 8673980.,
      8792658., 8828428., 8946322., 8982876.};
  const std::array<int, 4> in_shape = {{1, 8, 10, 4}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x8x10x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      831776.,  836160.,  840544.,  844928.,  1103752., 1109392., 1115032.,
      1120672., 1378096., 1385056., 1392016., 1398976., 1653784., 1662128.,
      1670472., 1678816., 1764952., 1773744., 1782536., 1791328., 1876120.,
      1885360., 1894600., 1903840., 1987288., 1996976., 2006664., 2016352.,
      1765936., 1774432., 1782928., 1791424., 1556552., 1563792., 1571032.,
      1578272., 1360160., 1366080., 1372000., 1377920., 1465704., 1472784.,
      1479864., 1486944., 1943402., 1952452., 1961502., 1970552., 2417276.,
      2428376., 2439476., 2450576., 2886046., 2899276., 2912506., 2925736.,
      3028462., 3042252., 3056042., 3069832., 3170878., 3185228., 3199578.,
      3213928., 3313294., 3328204., 3343114., 3358024., 2924860., 2937880.,
      2950900., 2963920., 2556122., 2567172., 2578222., 2589272., 2208360.,
      2217360., 2226360., 2235360., 2278320., 2288736., 2299152., 2309568.,
      2995532., 3008792., 3022052., 3035312., 3698376., 3714576., 3730776.,
      3746976., 4385316., 4404552., 4423788., 4443024., 4546436., 4566344.,
      4586252., 4606160., 4707556., 4728136., 4748716., 4769296., 4868676.,
      4889928., 4911180., 4932432., 4267336., 4285840., 4304344., 4322848.,
      3697772., 3713432., 3729092., 3744752., 3161520., 3174240., 3186960.,
      3199680., 3197944., 3212336., 3226728., 3241120., 4170542., 4188812.,
      4207082., 4225352., 5113876., 5136136., 5158396., 5180656., 6026154.,
      6052516., 6078878., 6105240., 6193434., 6220580., 6247726., 6274872.,
      6360714., 6388644., 6416574., 6444504., 6527994., 6556708., 6585422.,
      6614136., 5685844., 5710792., 5735740., 5760688., 4891902., 4912972.,
      4934042., 4955112., 4147960., 4165040., 4182120., 4199200., 4156024.,
      4174896., 4193768., 4212640., 5384782., 5408652., 5432522., 5456392.,
      6566356., 6595336., 6624316., 6653296., 7698954., 7733156., 7767358.,
      7801560., 7866234., 7901220., 7936206., 7971192., 8033514., 8069284.,
      8105054., 8140824., 8200794., 8237348., 8273902., 8310456., 7112724.,
      7144392., 7176060., 7207728., 6090782., 6117452., 6144122., 6170792.,
      5136760., 5158320., 5179880., 5201440., 3856560., 3874656., 3892752.,
      3910848., 5069452., 5092312., 5115172., 5138032., 6234696., 6262416.,
      6290136., 6317856., 7350756., 7383432., 7416108., 7448784., 7493956.,
      7527304., 7560652., 7594000., 7637156., 7671176., 7705196., 7739216.,
      7780356., 7815048., 7849740., 7884432., 6803656., 6833680., 6863704.,
      6893728., 5892012., 5917272., 5942532., 5967792., 5046960., 5067360.,
      5087760., 5108160., 3992808., 4009488., 4026168., 4042848., 5309642.,
      5330692., 5351742., 5372792., 6582716., 6608216., 6633716., 6659216.,
      7810750., 7840780., 7870810., 7900840., 7942414., 7973004., 8003594.,
      8034184., 8074078., 8105228., 8136378., 8167528., 8205742., 8237452.,
      8269162., 8300872., 7232636., 7260056., 7287476., 7314896., 6319162.,
      6342212., 6365262., 6388312., 5466600., 5485200., 5503800., 5522400.,
      3975968., 3990592., 4005216., 4019840., 4865800., 4884240., 4902680.,
      4921120., 5711920., 5734240., 5756560., 5778880., 6513304., 6539568.,
      6565832., 6592096., 6613208., 6639920., 6666632., 6693344., 6713112.,
      6740272., 6767432., 6794592., 6813016., 6840624., 6868232., 6895840.,
      5685040., 5708896., 5732752., 5756608., 4606920., 4626960., 4647000.,
      4667040., 3579680., 3595840., 3612000., 3628160.};
  const std::array<int, 4> in_shape = {{1, 8, 10, 4}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x8x10x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6026154., 6052516., 6078878., 6105240., 6193434., 6220580., 6247726.,
      6274872., 6360714., 6388644., 6416574., 6444504., 6527994., 6556708.,
      6585422., 6614136., 7698954., 7733156., 7767358., 7801560., 7866234.,
      7901220., 7936206., 7971192., 8033514., 8069284., 8105054., 8140824.,
      8200794., 8237348., 8273902., 8310456.};
  const std::array<int, 4> in_shape = {{1, 8, 10, 4}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x9x8x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      9724.,  12390., 15142., 17976., 18970., 16450., 13860., 11204., 14660.,
      18525., 22460., 26460., 27580., 23765., 19900., 15990., 20150., 25315.,
      30519., 35756., 36953., 31689., 26410., 21122., 25970., 32480., 38983.,
      45472., 46697., 39886., 33110., 26376., 31906., 39760., 47551., 55272.,
      56497., 48118., 39830., 31640., 37842., 47040., 56119., 65072., 66297.,
      56350., 46550., 36904., 29618., 36685., 43605., 50372., 51275., 43407.,
      35710., 28190., 21960., 27075., 32030., 36820., 37450., 31535., 25800.,
      20250., 15092., 18490., 21730., 24808., 25214., 21070., 17100., 13308.};
  const std::array<int, 4> in_shape = {{1, 9, 8, 1}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x9x8x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {45472., 46697., 55272.,
                                         56497., 65072., 66297.};
  const std::array<int, 4> in_shape = {{1, 9, 8, 1}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x9x8x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      19216.,  19448.,  24480.,  24780.,  29912.,  30284.,  35504.,  35952.,
      37464.,  37940.,  32480.,  32900.,  27360.,  27720.,  22112.,  22408.,
      28950.,  29320.,  36575.,  37050.,  44335.,  44920.,  52220.,  52920.,
      54425.,  55160.,  46885.,  47530.,  39250.,  39800.,  31530.,  31980.,
      39760.,  40300.,  49940.,  50630.,  60192.,  61038.,  70504.,  71512.,
      72856.,  73906.,  62460.,  63378.,  52040.,  52820.,  41608.,  42244.,
      51198.,  51940.,  64015.,  64960.,  76811.,  77966.,  89572.,  90944.,
      91973.,  93394.,  78533.,  79772.,  65170.,  66220.,  51898.,  52752.,
      62846.,  63812.,  78295.,  79520.,  93611.,  95102.,  108780., 110544.,
      111181., 112994., 94661.,  96236.,  78330.,  79660.,  62202.,  63280.,
      74494.,  75684.,  92575.,  94080.,  110411., 112238., 127988., 130144.,
      130389., 132594., 110789., 112700., 91490.,  93100.,  72506.,  73808.,
      58120.,  59236.,  71960.,  73370.,  85500.,  87210.,  98728.,  100744.,
      100492., 102550., 85032.,  86814.,  69920.,  71420.,  55168.,  56380.,
      42910.,  43920.,  52875.,  54150.,  62515.,  64060.,  71820.,  73640.,
      73045.,  74900.,  61465.,  63070.,  50250.,  51600.,  39410.,  40500.,
      29312.,  30184.,  35880.,  36980.,  42128.,  43460.,  48048.,  49616.,
      48832.,  50428.,  40760.,  42140.,  33040.,  34200.,  25680.,  26616.};
  const std::array<int, 4> in_shape = {{1, 9, 8, 1}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x9x8x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {89572.,  90944.,  91973.,  93394.,
                                         108780., 110544., 111181., 112994.,
                                         127988., 130144., 130389., 132594.};
  const std::array<int, 4> in_shape = {{1, 9, 8, 1}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x9x8x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      38200.,  38432.,  38664.,  38896.,  48660.,  48960.,  49260.,  49560.,
      59452.,  59824.,  60196.,  60568.,  70560.,  71008.,  71456.,  71904.,
      74452.,  74928.,  75404.,  75880.,  64540.,  64960.,  65380.,  65800.,
      54360.,  54720.,  55080.,  55440.,  43928.,  44224.,  44520.,  44816.,
      57530.,  57900.,  58270.,  58640.,  72675.,  73150.,  73625.,  74100.,
      88085.,  88670.,  89255.,  89840.,  103740., 104440., 105140., 105840.,
      108115., 108850., 109585., 110320., 93125.,  93770.,  94415.,  95060.,
      77950.,  78500.,  79050.,  79600.,  62610.,  63060.,  63510.,  63960.,
      78980.,  79520.,  80060.,  80600.,  99190.,  99880.,  100570., 101260.,
      119538., 120384., 121230., 122076., 140000., 141008., 142016., 143024.,
      144662., 145712., 146762., 147812., 124002., 124920., 125838., 126756.,
      103300., 104080., 104860., 105640., 82580.,  83216.,  83852.,  84488.,
      101654., 102396., 103138., 103880., 127085., 128030., 128975., 129920.,
      152467., 153622., 154777., 155932., 177772., 179144., 180516., 181888.,
      182525., 183946., 185367., 186788., 155827., 157066., 158305., 159544.,
      129290., 130340., 131390., 132440., 102942., 103796., 104650., 105504.,
      124726., 125692., 126658., 127624., 155365., 156590., 157815., 159040.,
      185731., 187222., 188713., 190204., 215796., 217560., 219324., 221088.,
      220549., 222362., 224175., 225988., 187747., 189322., 190897., 192472.,
      155330., 156660., 157990., 159320., 123326., 124404., 125482., 126560.,
      147798., 148988., 150178., 151368., 183645., 185150., 186655., 188160.,
      218995., 220822., 222649., 224476., 253820., 255976., 258132., 260288.,
      258573., 260778., 262983., 265188., 219667., 221578., 223489., 225400.,
      181370., 182980., 184590., 186200., 143710., 145012., 146314., 147616.,
      115124., 116240., 117356., 118472., 142510., 143920., 145330., 146740.,
      169290., 171000., 172710., 174420., 195440., 197456., 199472., 201488.,
      198926., 200984., 203042., 205100., 168282., 170064., 171846., 173628.,
      138340., 139840., 141340., 142840., 109124., 110336., 111548., 112760.,
      84810.,  85820.,  86830.,  87840.,  104475., 105750., 107025., 108300.,
      123485., 125030., 126575., 128120., 141820., 143640., 145460., 147280.,
      144235., 146090., 147945., 149800., 121325., 122930., 124535., 126140.,
      99150.,  100500., 101850., 103200., 77730.,  78820.,  79910.,  81000.,
      57752.,  58624.,  59496.,  60368.,  70660.,  71760.,  72860.,  73960.,
      82924.,  84256.,  85588.,  86920.,  94528.,  96096.,  97664.,  99232.,
      96068.,  97664.,  99260.,  100856., 80140.,  81520.,  82900.,  84280.,
      64920.,  66080.,  67240.,  68400.,  50424.,  51360.,  52296.,  53232.};
  const std::array<int, 4> in_shape = {{1, 9, 8, 1}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x9x8x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      177772., 179144., 180516., 181888., 182525., 183946., 185367., 186788.,
      215796., 217560., 219324., 221088., 220549., 222362., 224175., 225988.,
      253820., 255976., 258132., 260288., 258573., 260778., 262983., 265188.};
  const std::array<int, 4> in_shape = {{1, 9, 8, 1}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x9x8x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      76160.,  97080.,  118688., 140952., 148848., 129104., 108800., 87968.,
      115220., 145625., 176590., 208075., 216965., 186970., 156575., 125820.,
      158704., 199400., 240408., 281680., 291172., 249696., 208100., 166432.,
      204820., 256165., 307454., 358631., 368333., 314594., 261135., 208012.,
      251860., 313845., 375326., 436247., 445949., 379778., 314335., 249676.,
      298900., 371525., 443198., 513863., 523565., 444962., 367535., 291340.,
      233632., 289340., 343872., 397180., 404320., 342216., 281480., 222160.,
      172900., 213125., 252070., 289695., 294665., 248050., 202875., 159180.,
      118496., 145120., 170480., 194544., 197736., 165152., 133960., 104192.};
  const std::array<int, 4> in_shape = {{1, 9, 8, 2}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x9x8x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {358631., 368333., 436247.,
                                         445949., 513863., 523565.};
  const std::array<int, 4> in_shape = {{1, 9, 8, 2}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x9x8x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      151408., 152320., 192980.,  194160.,  235912.,  237376.,  280140.,
      281904., 295820., 297696.,  256552.,  258208.,  216180.,  217600.,
      174768., 175936., 228980.,  230440.,  289375.,  291250.,  350870.,
      353180., 413385., 416150.,  431025.,  433930.,  371390.,  373940.,
      310975., 313150., 249860.,  251640.,  315272.,  317408.,  396070.,
      398800., 477468., 480816.,  559370.,  563360.,  578186.,  582344.,
      495756., 499392., 413110.,  416200.,  330344.,  332864.,  406700.,
      409640., 508585., 512330.,  610330.,  614908.,  711823.,  717262.,
      731031., 736666., 624274.,  629188.,  518105.,  522270.,  412636.,
      416024., 499884., 503720.,  622825.,  627690.,  744730.,  750652.,
      865487., 872494., 884695.,  891898.,  753298.,  759556.,  623385.,
      628670., 495068., 499352.,  593068.,  597800.,  737065.,  743050.,
      879130., 886396., 1019151., 1027726., 1038359., 1047130., 882322.,
      889924., 728665., 735070.,  577500.,  582680.,  462824.,  467264.,
      573070., 578680., 680940.,  687744.,  786338.,  794360.,  800450.,
      808640., 677340., 684432.,  556990.,  562960.,  439496.,  444320.,
      341780., 345800., 421175.,  426250.,  497990.,  504140.,  572145.,
      579390., 581945., 589330.,  489710.,  496100.,  400375.,  405750.,
      314020., 318360., 233520.,  236992.,  285860.,  290240.,  335656.,
      340960., 382844., 389088.,  389116.,  395472.,  324808.,  330304.,
      263300., 267920., 204656.,  208384.};
  const std::array<int, 4> in_shape = {{1, 9, 8, 2}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x9x8x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      711823., 717262., 731031.,  736666.,  865487.,  872494.,
      884695., 891898., 1019151., 1027726., 1038359., 1047130.};
  const std::array<int, 4> in_shape = {{1, 9, 8, 2}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x9x8x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      301904.,  302816.,  303728.,  304640.,  384780.,  385960.,  387140.,
      388320.,  470360.,  471824.,  473288.,  474752.,  558516.,  560280.,
      562044.,  563808.,  589764.,  591640.,  593516.,  595392.,  511448.,
      513104.,  514760.,  516416.,  430940.,  432360.,  433780.,  435200.,
      348368.,  349536.,  350704.,  351872.,  456500.,  457960.,  459420.,
      460880.,  576875.,  578750.,  580625.,  582500.,  699430.,  701740.,
      704050.,  706360.,  824005.,  826770.,  829535.,  832300.,  859145.,
      862050.,  864955.,  867860.,  740230.,  742780.,  745330.,  747880.,
      619775.,  621950.,  624125.,  626300.,  497940.,  499720.,  501500.,
      503280.,  628408.,  630544.,  632680.,  634816.,  789410.,  792140.,
      794870.,  797600.,  951588.,  954936.,  958284.,  961632.,  1114750.,
      1118740., 1122730., 1126720., 1152214., 1156372., 1160530., 1164688.,
      987876.,  991512.,  995148.,  998784.,  823130.,  826220.,  829310.,
      832400.,  658168.,  660688.,  663208.,  665728.,  810460.,  813400.,
      816340.,  819280.,  1013425., 1017170., 1020915., 1024660., 1216082.,
      1220660., 1225238., 1229816., 1418207., 1423646., 1429085., 1434524.,
      1456427., 1462062., 1467697., 1473332., 1243634., 1248548., 1253462.,
      1258376., 1032045., 1036210., 1040375., 1044540., 821884.,  825272.,
      828660.,  832048.,  995932.,  999768.,  1003604., 1007440., 1240785.,
      1245650., 1250515., 1255380., 1483538., 1489460., 1495382., 1501304.,
      1723967., 1730974., 1737981., 1744988., 1762187., 1769390., 1776593.,
      1783796., 1500338., 1506596., 1512854., 1519112., 1241485., 1246770.,
      1252055., 1257340., 985852.,  990136.,  994420.,  998704.,  1181404.,
      1186136., 1190868., 1195600., 1468145., 1474130., 1480115., 1486100.,
      1750994., 1758260., 1765526., 1772792., 2029727., 2038302., 2046877.,
      2055452., 2067947., 2076718., 2085489., 2094260., 1757042., 1764644.,
      1772246., 1779848., 1450925., 1457330., 1463735., 1470140., 1149820.,
      1155000., 1160180., 1165360., 921208.,  925648.,  930088.,  934528.,
      1140530., 1146140., 1151750., 1157360., 1355076., 1361880., 1368684.,
      1375488., 1564654., 1572676., 1580698., 1588720., 1592710., 1600900.,
      1609090., 1617280., 1347588., 1354680., 1361772., 1368864., 1108010.,
      1113980., 1119950., 1125920., 874168.,  878992.,  883816.,  888640.,
      679540.,  683560.,  687580.,  691600.,  837275.,  842350.,  847425.,
      852500.,  989830.,  995980.,  1002130., 1008280., 1137045., 1144290.,
      1151535., 1158780., 1156505., 1163890., 1171275., 1178660., 973030.,
      979420.,  985810.,  992200.,  795375.,  800750.,  806125.,  811500.,
      623700.,  628040.,  632380.,  636720.,  463568.,  467040.,  470512.,
      473984.,  567340.,  571720.,  576100.,  580480.,  666008.,  671312.,
      676616.,  681920.,  759444.,  765688.,  771932.,  778176.,  771876.,
      778232.,  784588.,  790944.,  644120.,  649616.,  655112.,  660608.,
      521980.,  526600.,  531220.,  535840.,  405584.,  409312.,  413040.,
      416768.};
  const std::array<int, 4> in_shape = {{1, 9, 8, 2}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x9x8x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1418207., 1423646., 1429085., 1434524., 1456427., 1462062.,
      1467697., 1473332., 1723967., 1730974., 1737981., 1744988.,
      1762187., 1769390., 1776593., 1783796., 2029727., 2038302.,
      2046877., 2055452., 2067947., 2076718., 2085489., 2094260.};
  const std::array<int, 4> in_shape = {{1, 9, 8, 2}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x9x8x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      602784.,  768520.,  939760.,  1116248., 1179192., 1022896., 862120.,
      697120.,  913560.,  1154750., 1400420., 1650250., 1721090., 1483220.,
      1242150., 998200.,  1259696., 1582780., 1908360., 2236052., 2311652.,
      1982376., 1652140., 1321328., 1626856., 2034690., 2442076., 2848566.,
      2925790., 2498860., 2074170., 1652168., 2001384., 2493890., 2982364.,
      3466358., 3543582., 3017644., 2497530., 1983688., 2375912., 2953090.,
      3522652., 4084150., 4161374., 3536428., 2920890., 2315208., 1855856.,
      2298220., 2731176., 3154340., 3211124., 2717640., 2235100., 1763888.,
      1372120., 1691150., 1999940., 2298170., 2337650., 1967540., 1608950.,
      1262200., 939040.,  1149800., 1350448., 1540728., 1566040., 1307632.,
      1060360., 824480.};
  const std::array<int, 4> in_shape = {{1, 9, 8, 4}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x9x8x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {2848566., 2925790., 3466358.,
                                         3543582., 4084150., 4161374.};
  const std::array<int, 4> in_shape = {{1, 9, 8, 4}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x9x8x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1201952., 1205568., 1532360., 1537040., 1873712., 1879520., 2225496.,
      2232496., 2350936., 2358384., 2039216., 2045792., 1718600., 1724240.,
      1389600., 1394240., 1821320., 1827120., 2302050., 2309500., 2791660.,
      2800840., 3289510., 3300500., 3430630., 3442180., 2956300., 2966440.,
      2475650., 2484300., 1989320., 1996400., 2510896., 2519392., 3154700.,
      3165560., 3803400., 3816720., 4456228., 4472104., 4606756., 4623304.,
      3950280., 3964752., 3291980., 3304280., 2632624., 2642656., 3242008.,
      3253712., 4054470., 4069380., 4865924., 4884152., 5675474., 5697132.,
      5829138., 5851580., 4978148., 4997720., 4131750., 4148340., 3290840.,
      3304336., 3987480., 4002768., 4968390., 4987780., 5941124., 5964728.,
      6904786., 6932716., 7058450., 7087164., 6010340., 6035288., 4973990.,
      4995060., 3950296., 3967376., 4732952., 4751824., 5882310., 5906180.,
      7016324., 7045304., 8134098., 8168300., 8287762., 8322748., 7042532.,
      7072856., 5816230., 5841780., 4609752., 4630416., 3694000., 3711712.,
      4574060., 4596440., 5435208., 5462352., 6276676., 6308680., 6389572.,
      6422248., 5406984., 5435280., 4446380., 4470200., 3508528., 3527776.,
      2728200., 2744240., 3362050., 3382300., 3975340., 3999880., 4567430.,
      4596340., 4645830., 4675300., 3909580., 3935080., 3196450., 3217900.,
      2507080., 2524400., 1864224., 1878080., 2282120., 2299600., 2679728.,
      2700896., 3056536., 3081456., 3106712., 3132080., 2593328., 2615264.,
      2102280., 2120720., 1634080., 1648960.};
  const std::array<int, 4> in_shape = {{1, 9, 8, 4}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x9x8x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5675474., 5697132., 5829138., 5851580., 6904786., 6932716.,
      7058450., 7087164., 8134098., 8168300., 8287762., 8322748.};
  const std::array<int, 4> in_shape = {{1, 9, 8, 4}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x9x8x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2400288.,  2403904.,  2407520.,  2411136.,  3060040.,  3064720.,
      3069400.,  3074080.,  3741616.,  3747424.,  3753232.,  3759040.,
      4443992.,  4450992.,  4457992.,  4464992.,  4694424.,  4701872.,
      4709320.,  4716768.,  4071856.,  4078432.,  4085008.,  4091584.,
      3431560.,  3437200.,  3442840.,  3448480.,  2774560.,  2779200.,
      2783840.,  2788480.,  3636840.,  3642640.,  3648440.,  3654240.,
      4596650.,  4604100.,  4611550.,  4619000.,  5574140.,  5583320.,
      5592500.,  5601680.,  6568030.,  6579020.,  6590010.,  6601000.,
      6849710.,  6861260.,  6872810.,  6884360.,  5902460.,  5912600.,
      5922740.,  5932880.,  4942650.,  4951300.,  4959950.,  4968600.,
      3971560.,  3978640.,  3985720.,  3992800.,  5013296.,  5021792.,
      5030288.,  5038784.,  6298540.,  6309400.,  6320260.,  6331120.,
      7593480.,  7606800.,  7620120.,  7633440.,  8896580.,  8912456.,
      8928332.,  8944208.,  9196964.,  9213512.,  9230060.,  9246608.,
      7886088.,  7900560.,  7915032.,  7929504.,  6571660.,  6583960.,
      6596260.,  6608560.,  5255216.,  5265248.,  5275280.,  5285312.,
      6472312.,  6484016.,  6495720.,  6507424.,  8094030.,  8108940.,
      8123850.,  8138760.,  9713620.,  9731848.,  9750076.,  9768304.,
      11329290., 11350948., 11372606., 11394264., 11635834., 11658276.,
      11680718., 11703160., 9936724.,  9956296.,  9975868.,  9995440.,
      8246910.,  8263500.,  8280090.,  8296680.,  6568184.,  6581680.,
      6595176.,  6608672.,  7959672.,  7974960.,  7990248.,  8005536.,
      9917390.,  9936780.,  9956170.,  9975560.,  11858644., 11882248.,
      11905852., 11929456., 13781642., 13809572., 13837502., 13865432.,
      14088186., 14116900., 14145614., 14174328., 11995732., 12020680.,
      12045628., 12070576., 9926910.,  9947980.,  9969050.,  9990120.,
      7883512.,  7900592.,  7917672.,  7934752.,  9447032.,  9465904.,
      9484776.,  9503648.,  11740750., 11764620., 11788490., 11812360.,
      14003668., 14032648., 14061628., 14090608., 16233994., 16268196.,
      16302398., 16336600., 16540538., 16575524., 16610510., 16645496.,
      14054740., 14085064., 14115388., 14145712., 11606910., 11632460.,
      11658010., 11683560., 9198840.,  9219504.,  9240168.,  9260832.,
      7370288.,  7388000.,  7405712.,  7423424.,  9125740.,  9148120.,
      9170500.,  9192880.,  10843272., 10870416., 10897560., 10924704.,
      12521348., 12553352., 12585356., 12617360., 12746468., 12779144.,
      12811820., 12844496., 10785672., 10813968., 10842264., 10870560.,
      8868940.,  8892760.,  8916580.,  8940400.,  6997808.,  7017056.,
      7036304.,  7055552.,  5440360.,  5456400.,  5472440.,  5488480.,
      6703850.,  6724100.,  6744350.,  6764600.,  7926140.,  7950680.,
      7975220.,  7999760.,  9105950.,  9134860.,  9163770.,  9192680.,
      9262190.,  9291660.,  9321130.,  9350600.,  7793660.,  7819160.,
      7844660.,  7870160.,  6371450.,  6392900.,  6414350.,  6435800.,
      4996840.,  5014160.,  5031480.,  5048800.,  3714592.,  3728448.,
      3742304.,  3756160.,  4546760.,  4564240.,  4581720.,  4599200.,
      5338288.,  5359456.,  5380624.,  5401792.,  6088152.,  6113072.,
      6137992.,  6162912.,  6188056.,  6213424.,  6238792.,  6264160.,
      5164720.,  5186656.,  5208592.,  5230528.,  4186120.,  4204560.,
      4223000.,  4241440.,  3253280.,  3268160.,  3283040.,  3297920.};
  const std::array<int, 4> in_shape = {{1, 9, 8, 4}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x9x8x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      11329290., 11350948., 11372606., 11394264., 11635834., 11658276.,
      11680718., 11703160., 13781642., 13809572., 13837502., 13865432.,
      14088186., 14116900., 14145614., 14174328., 16233994., 16268196.,
      16302398., 16336600., 16540538., 16575524., 16610510., 16645496.};
  const std::array<int, 4> in_shape = {{1, 9, 8, 4}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x9x9x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      10752., 13660., 16648., 19712., 20706., 21700., 18760., 15760., 12704.,
      16280., 20525., 24830., 29190., 30310., 31430., 27020., 22575., 18100.,
      22440., 28140., 33864., 39606., 40803., 42000., 35952., 29910., 23880.,
      28980., 36190., 43372., 50519., 51744., 52969., 45178., 37450., 29792.,
      35658., 44380., 53011., 61544., 62769., 63994., 54439., 45010., 35714.,
      42336., 52570., 62650., 72569., 73794., 75019., 63700., 52570., 41636.,
      33144., 41010., 48696., 56196., 57099., 58002., 49056., 40320., 31800.,
      24580., 30275., 35780., 41090., 41720., 42350., 35630., 29125., 22840.,
      16896., 20680., 24280., 27692., 28098., 28504., 23800., 19300., 15008.};
  const std::array<int, 4> in_shape = {{1, 9, 9, 1}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x9x9x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {50519., 51744., 52969., 61544., 62769.,
                                         63994., 72569., 73794., 75019.};
  const std::array<int, 4> in_shape = {{1, 9, 9, 1}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x9x9x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      21248.,  21504.,  26990.,  27320.,  32888.,  33296.,  38934.,  39424.,
      40894.,  41412.,  42854.,  43400.,  37040.,  37520.,  31110.,  31520.,
      25072.,  25408.,  32150.,  32560.,  40525.,  41050.,  49015.,  49660.,
      57610.,  58380.,  59815.,  60620.,  62020.,  62860.,  53305.,  54040.,
      44525.,  45150.,  35690.,  36200.,  44280.,  44880.,  55515.,  56280.,
      66792.,  67728.,  78099.,  79212.,  80451.,  81606.,  82803.,  84000.,
      70860.,  71904.,  58935.,  59820.,  47040.,  47760.,  57134.,  57960.,
      71330.,  72380.,  85463.,  86744.,  99519.,  101038., 101920., 103488.,
      104321., 105938., 88949.,  90356.,  73710.,  74900.,  58618.,  59584.,
      70238.,  71316.,  87395.,  88760.,  104363., 106022., 121128., 123088.,
      123529., 125538., 125930., 127988., 107093., 108878., 88515.,  90020.,
      70210.,  71428.,  83342.,  84672.,  103460., 105140., 123263., 125300.,
      142737., 145138., 145138., 147588., 147539., 150038., 125237., 127400.,
      103320., 105140., 81802.,  83272.,  65040.,  66288.,  80445.,  82020.,
      95484.,  97392.,  110145., 112392., 111909., 114198., 113673., 116004.,
      96096.,  98112.,  78945.,  80640.,  62232.,  63600.,  48030.,  49160.,
      59125.,  60550.,  69835.,  71560.,  80150.,  82180.,  81375.,  83440.,
      82600.,  84700.,  69445.,  71260.,  56725.,  58250.,  44450.,  45680.,
      32816.,  33792.,  40130.,  41360.,  47072.,  48560.,  53634.,  55384.,
      54418.,  56196.,  55202.,  57008.,  46040.,  47600.,  37290.,  38600.,
      28960.,  30016.};
  const std::array<int, 4> in_shape = {{1, 9, 9, 1}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x9x9x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      99519.,  101038., 101920., 103488., 104321., 105938.,
      121128., 123088., 123529., 125538., 125930., 127988.,
      142737., 145138., 145138., 147588., 147539., 150038.};
  const std::array<int, 4> in_shape = {{1, 9, 9, 1}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x9x9x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      42240.,  42496.,  42752.,  43008.,  53650.,  53980.,  54310.,  54640.,
      65368.,  65776.,  66184.,  66592.,  77378.,  77868.,  78358.,  78848.,
      81270.,  81788.,  82306.,  82824.,  85162.,  85708.,  86254.,  86800.,
      73600.,  74080.,  74560.,  75040.,  61810.,  62220.,  62630.,  63040.,
      49808.,  50144.,  50480.,  50816.,  63890.,  64300.,  64710.,  65120.,
      80525.,  81050.,  81575.,  82100.,  97385.,  98030.,  98675.,  99320.,
      114450., 115220., 115990., 116760., 118825., 119630., 120435., 121240.,
      123200., 124040., 124880., 125720., 105875., 106610., 107345., 108080.,
      88425.,  89050.,  89675.,  90300.,  70870.,  71380.,  71890.,  72400.,
      87960.,  88560.,  89160.,  89760.,  110265., 111030., 111795., 112560.,
      132648., 133584., 134520., 135456., 155085., 156198., 157311., 158424.,
      159747., 160902., 162057., 163212., 164409., 165606., 166803., 168000.,
      140676., 141720., 142764., 143808., 116985., 117870., 118755., 119640.,
      93360.,  94080.,  94800.,  95520.,  113442., 114268., 115094., 115920.,
      141610., 142660., 143710., 144760., 169645., 170926., 172207., 173488.,
      197519., 199038., 200557., 202076., 202272., 203840., 205408., 206976.,
      207025., 208642., 210259., 211876., 176491., 177898., 179305., 180712.,
      146230., 147420., 148610., 149800., 116270., 117236., 118202., 119168.,
      139398., 140476., 141554., 142632., 173425., 174790., 176155., 177520.,
      207067., 208726., 210385., 212044., 240296., 242256., 244216., 246176.,
      245049., 247058., 249067., 251076., 249802., 251860., 253918., 255976.,
      212401., 214186., 215971., 217756., 175525., 177030., 178535., 180040.,
      139202., 140420., 141638., 142856., 165354., 166684., 168014., 169344.,
      205240., 206920., 208600., 210280., 244489., 246526., 248563., 250600.,
      283073., 285474., 287875., 290276., 287826., 290276., 292726., 295176.,
      292579., 295078., 297577., 300076., 248311., 250474., 252637., 254800.,
      204820., 206640., 208460., 210280., 162134., 163604., 165074., 166544.,
      128832., 130080., 131328., 132576., 159315., 160890., 162465., 164040.,
      189060., 190968., 192876., 194784., 218043., 220290., 222537., 224784.,
      221529., 223818., 226107., 228396., 225015., 227346., 229677., 232008.,
      190176., 192192., 194208., 196224., 156195., 157890., 159585., 161280.,
      123096., 124464., 125832., 127200., 94930.,  96060.,  97190.,  98320.,
      116825., 118250., 119675., 121100., 137945., 139670., 141395., 143120.,
      158270., 160300., 162330., 164360., 160685., 162750., 164815., 166880.,
      163100., 165200., 167300., 169400., 137075., 138890., 140705., 142520.,
      111925., 113450., 114975., 116500., 87670.,  88900.,  90130.,  91360.,
      64656.,  65632.,  66608.,  67584.,  79030.,  80260.,  81490.,  82720.,
      92656.,  94144.,  95632.,  97120.,  105518., 107268., 109018., 110768.,
      107058., 108836., 110614., 112392., 108598., 110404., 112210., 114016.,
      90520.,  92080.,  93640.,  95200.,  73270.,  74580.,  75890.,  77200.,
      56864.,  57920.,  58976.,  60032.};
  const std::array<int, 4> in_shape = {{1, 9, 9, 1}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x9x9x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      197519., 199038., 200557., 202076., 202272., 203840., 205408., 206976.,
      207025., 208642., 210259., 211876., 240296., 242256., 244216., 246176.,
      245049., 247058., 249067., 251076., 249802., 251860., 253918., 255976.,
      283073., 285474., 287875., 290276., 287826., 290276., 292726., 295176.,
      292579., 295078., 297577., 300076.};
  const std::array<int, 4> in_shape = {{1, 9, 9, 1}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x9x9x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      84336.,  107180., 130664., 154756., 162652., 170548., 147464., 123900.,
      99888.,  128100., 161525., 195430., 229775., 238665., 247555., 212830.,
      177825., 142580., 176904., 221850., 266988., 312270., 321762., 331254.,
      283548., 235890., 188328., 228732., 285635., 342314., 398713., 408415.,
      418117., 356594., 295575., 235116., 281652., 350525., 418670., 486031.,
      495733., 505435., 429926., 355425., 281988., 334572., 415415., 495026.,
      573349., 583051., 592753., 503258., 415275., 328860., 261576., 323610.,
      384204., 443310., 450450., 457590., 386940., 317970., 250728., 193620.,
      238425., 281710., 323435., 328405., 333375., 280390., 229125., 179620.,
      132720., 162380., 190568., 217252., 220444., 223636., 186632., 151260.,
      117552.};
  const std::array<int, 4> in_shape = {{1, 9, 9, 2}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x9x9x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {398713., 408415., 418117.,
                                         486031., 495733., 505435.,
                                         573349., 583051., 592753.};
  const std::array<int, 4> in_shape = {{1, 9, 9, 2}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x9x9x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      167664.,  168672.,  213060.,  214360.,  259720., 261328.,  307580.,
      309512.,  323260.,  325304.,  338940.,  341096., 293032.,  294928.,
      246180.,  247800.,  198448.,  199776.,  254580., 256200.,  320975.,
      323050.,  388310.,  390860.,  456505.,  459550., 474145.,  477330.,
      491785.,  495110.,  422750.,  425660.,  353175., 355650.,  283140.,
      285160.,  351432.,  353808.,  440670.,  443700., 530268.,  533976.,
      620130.,  624540.,  638946.,  643524.,  657762., 662508.,  562956.,
      567096.,  468270.,  471780.,  373800.,  376656., 454188.,  457464.,
      567105.,  571270.,  679546.,  684628.,  791399., 797426.,  810607.,
      816830.,  829815.,  836234.,  707602.,  713188., 586425.,  591150.,
      466396.,  470232.,  559020.,  563304.,  695625., 701050.,  830746.,
      837340.,  964271.,  972062.,  983479.,  991466., 1002687., 1010870.,
      852754.,  859852.,  704865.,  710850.,  559132., 563976.,  663852.,
      669144.,  824145.,  830830.,  981946.,  990052., 1137143., 1146698.,
      1156351., 1166102., 1175559., 1185506., 997906., 1006516., 823305.,
      830550.,  651868.,  657720.,  518184.,  523152., 640950.,  647220.,
      760812.,  768408.,  877674.,  886620.,  891786., 900900.,  905898.,
      915180.,  765852.,  773880.,  629190.,  635940., 496008.,  501456.,
      382740.,  387240.,  471175.,  476850.,  556550., 563420.,  638785.,
      646870.,  648585.,  656810.,  658385.,  666750., 553550.,  560780.,
      452175.,  458250.,  354340.,  359240.,  261552., 265440.,  319860.,
      324760.,  375208.,  381136.,  427532.,  434504., 433804.,  440888.,
      440076.,  447272.,  367048.,  373264.,  297300., 302520.,  230896.,
      235104.};
  const std::array<int, 4> in_shape = {{1, 9, 9, 2}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x9x9x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      791399.,  797426.,  810607.,  816830.,  829815.,  836234.,
      964271.,  972062.,  983479.,  991466.,  1002687., 1010870.,
      1137143., 1146698., 1156351., 1166102., 1175559., 1185506.};
  const std::array<int, 4> in_shape = {{1, 9, 9, 2}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x9x9x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      334320.,  335328.,  336336.,  337344.,  424820.,  426120.,  427420.,
      428720.,  517832.,  519440.,  521048.,  522656.,  613228.,  615160.,
      617092.,  619024.,  644476.,  646520.,  648564.,  650608.,  675724.,
      677880.,  680036.,  682192.,  584168.,  586064.,  587960.,  589856.,
      490740.,  492360.,  493980.,  495600.,  395568.,  396896.,  398224.,
      399552.,  507540.,  509160.,  510780.,  512400.,  639875.,  641950.,
      644025.,  646100.,  774070.,  776620.,  779170.,  781720.,  909965.,
      913010.,  916055.,  919100.,  945105.,  948290.,  951475.,  954660.,
      980245.,  983570.,  986895.,  990220.,  842590.,  845500.,  848410.,
      851320.,  703875.,  706350.,  708825.,  711300.,  564260.,  566280.,
      568300.,  570320.,  700488.,  702864.,  705240.,  707616.,  878310.,
      881340.,  884370.,  887400.,  1056828., 1060536., 1064244., 1067952.,
      1235850., 1240260., 1244670., 1249080., 1273314., 1277892., 1282470.,
      1287048., 1310778., 1315524., 1320270., 1325016., 1121772., 1125912.,
      1130052., 1134192., 933030.,  936540.,  940050.,  943560.,  744744.,
      747600.,  750456.,  753312.,  905100.,  908376.,  911652.,  914928.,
      1130045., 1134210., 1138375., 1142540., 1354010., 1359092., 1364174.,
      1369256., 1576771., 1582798., 1588825., 1594852., 1614991., 1621214.,
      1627437., 1633660., 1653211., 1659630., 1666049., 1672468., 1409618.,
      1415204., 1420790., 1426376., 1168125., 1172850., 1177575., 1182300.,
      928956.,  932792.,  936628.,  940464.,  1113756., 1118040., 1122324.,
      1126608., 1385825., 1391250., 1396675., 1402100., 1654898., 1661492.,
      1668086., 1674680., 1920751., 1928542., 1936333., 1944124., 1958971.,
      1966958., 1974945., 1982932., 1997191., 2005374., 2013557., 2021740.,
      1698410., 1705508., 1712606., 1719704., 1403745., 1409730., 1415715.,
      1421700., 1113420., 1118264., 1123108., 1127952., 1322412., 1327704.,
      1332996., 1338288., 1641605., 1648290., 1654975., 1661660., 1955786.,
      1963892., 1971998., 1980104., 2264731., 2274286., 2283841., 2293396.,
      2302951., 2312702., 2322453., 2332204., 2341171., 2351118., 2361065.,
      2371012., 1987202., 1995812., 2004422., 2013032., 1639365., 1646610.,
      1653855., 1661100., 1297884., 1303736., 1309588., 1315440., 1031400.,
      1036368., 1041336., 1046304., 1275630., 1281900., 1288170., 1294440.,
      1514028., 1521624., 1529220., 1536816., 1746402., 1755348., 1764294.,
      1773240., 1774458., 1783572., 1792686., 1801800., 1802514., 1811796.,
      1821078., 1830360., 1523676., 1531704., 1539732., 1547760., 1251630.,
      1258380., 1265130., 1271880., 986568.,  992016.,  997464.,  1002912.,
      760980.,  765480.,  769980.,  774480.,  936675.,  942350.,  948025.,
      953700.,  1106230., 1113100., 1119970., 1126840., 1269485., 1277570.,
      1285655., 1293740., 1288945., 1297170., 1305395., 1313620., 1308405.,
      1316770., 1325135., 1333500., 1099870., 1107100., 1114330., 1121560.,
      898275.,  904350.,  910425.,  916500.,  703780.,  708680.,  713580.,
      718480.,  519216.,  523104.,  526992.,  530880.,  634820.,  639720.,
      644620.,  649520.,  744488.,  750416.,  756344.,  762272.,  848092.,
      855064.,  862036.,  869008.,  860524.,  867608.,  874692.,  881776.,
      872956.,  880152.,  887348.,  894544.,  727880.,  734096.,  740312.,
      746528.,  589380.,  594600.,  599820.,  605040.,  457584.,  461792.,
      466000.,  470208.};
  const std::array<int, 4> in_shape = {{1, 9, 9, 2}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x9x9x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1576771., 1582798., 1588825., 1594852., 1614991., 1621214.,
      1627437., 1633660., 1653211., 1659630., 1666049., 1672468.,
      1920751., 1928542., 1936333., 1944124., 1958971., 1966958.,
      1974945., 1982932., 1997191., 2005374., 2013557., 2021740.,
      2264731., 2274286., 2283841., 2293396., 2302951., 2312702.,
      2322453., 2332204., 2341171., 2351118., 2361065., 2371012.};
  const std::array<int, 4> in_shape = {{1, 9, 9, 2}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x9x9x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      668000.,  849080.,  1035280., 1226344., 1289288., 1352232., 1169296.,
      982520.,  792160.,  1016280., 1281550., 1550660., 1823290., 1894130.,
      1964970., 1689380., 1411550., 1131800., 1404816., 1761780., 2120280.,
      2479932., 2555532., 2631132., 2252184., 1873620., 1495824., 1817480.,
      2269610., 2719948., 3168046., 3245270., 3322494., 2833516., 2348570.,
      1868104., 2238824., 2786210., 3327772., 3863062., 3940286., 4017510.,
      3417148., 2824850., 2241064., 2660168., 3302810., 3935596., 4558078.,
      4635302., 4712526., 4000780., 3301130., 2614024., 2078352., 2571060.,
      3052248., 3521532., 3578316., 3635100., 3073560., 2525460., 1991184.,
      1536920., 1892350., 2235620., 2566410., 2605890., 2645370., 2224580.,
      1817550., 1424600., 1052000., 1286840., 1509904., 1720936., 1746248.,
      1771560., 1478032., 1197560., 930400.};
  const std::array<int, 4> in_shape = {{1, 9, 9, 4}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x9x9x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {3168046., 3245270., 3322494.,
                                         3863062., 3940286., 4017510.,
                                         4558078., 4635302., 4712526.};
  const std::array<int, 4> in_shape = {{1, 9, 9, 4}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x9x9x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1332000., 1336000., 1693000., 1698160., 2064176., 2070560., 2445016.,
      2452688., 2570456., 2578576., 2695896., 2704464., 2331056., 2338592.,
      1958600., 1965040., 1579040., 1584320., 2026120., 2032560., 2554850.,
      2563100., 3091180., 3101320., 3634470., 3646580., 3775590., 3788260.,
      3916710., 3929940., 3367180., 3378760., 2813250., 2823100., 2255560.,
      2263600., 2800176., 2809632., 3511500., 3523560., 4225800., 4240560.,
      4942308., 4959864., 5092836., 5111064., 5243364., 5262264., 4487880.,
      4504368., 3733260., 3747240., 2980272., 2991648., 3621912., 3634960.,
      4522630., 4539220., 5419652., 5439896., 6312082., 6336092., 6465746.,
      6490540., 6619410., 6644988., 5644772., 5667032., 4678310., 4697140.,
      3720920., 3736208., 4460568., 4477648., 5550790., 5572420., 6629252.,
      6655544., 7695058., 7726124., 7848722., 7880572., 8002386., 8035020.,
      6805988., 6834296., 5625830., 5649700., 4462808., 4482128., 5299224.,
      5320336., 6578950., 6605620., 7838852., 7871192., 9078034., 9116156.,
      9231698., 9270604., 9385362., 9425052., 7967204., 8001560., 6573350.,
      6602260., 5204696., 5228048., 4136880., 4156704., 5117100., 5142120.,
      6074184., 6104496., 7007364., 7043064., 7120260., 7156632., 7233156.,
      7270200., 6115080., 6147120., 5023980., 5050920., 3960624., 3982368.,
      3055880., 3073840., 3762050., 3784700., 4443820., 4471240., 5100550.,
      5132820., 5178950., 5211780., 5257350., 5290740., 4420300., 4449160.,
      3610850., 3635100., 2829640., 2849200., 2088480., 2104000., 2554120.,
      2573680., 2996144., 3019808., 3414040., 3441872., 3464216., 3492496.,
      3514392., 3543120., 2931248., 2956064., 2374280., 2395120., 1844000.,
      1860800.};
  const std::array<int, 4> in_shape = {{1, 9, 9, 4}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x9x9x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6312082., 6336092., 6465746., 6490540., 6619410., 6644988.,
      7695058., 7726124., 7848722., 7880572., 8002386., 8035020.,
      9078034., 9116156., 9231698., 9270604., 9385362., 9425052.};
  const std::array<int, 4> in_shape = {{1, 9, 9, 4}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x9x9x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      760480.,  764480.,  768480.,  772480.,  1012328., 1017488., 1022648.,
      1027808., 1268080., 1274464., 1280848., 1287232., 1526712., 1534384.,
      1542056., 1549728., 1637880., 1646000., 1654120., 1662240., 1749048.,
      1757616., 1766184., 1774752., 1560048., 1567584., 1575120., 1582656.,
      1380456., 1386896., 1393336., 1399776., 1211296., 1216576., 1221856.,
      1227136., 1335272., 1341712., 1348152., 1354592., 1774474., 1782724.,
      1790974., 1799224., 2212412., 2222552., 2232692., 2242832., 2647806.,
      2659916., 2672026., 2684136., 2790222., 2802892., 2815562., 2828232.,
      2932638., 2945868., 2959098., 2972328., 2596060., 2607640., 2619220.,
      2630800., 2275338., 2285188., 2295038., 2304888., 1971752., 1979792.,
      1987832., 1995872., 2069360., 2078816., 2088272., 2097728., 2725500.,
      2737560., 2749620., 2761680., 3371112., 3385872., 3400632., 3415392.,
      4004660., 4022216., 4039772., 4057328., 4165780., 4184008., 4202236.,
      4220464., 4326900., 4345800., 4364700., 4383600., 3800360., 3816848.,
      3833336., 3849824., 3300220., 3314200., 3328180., 3342160., 2828016.,
      2839392., 2850768., 2862144., 2898232., 2911280., 2924328., 2937376.,
      3784766., 3801356., 3817946., 3834536., 4647412., 4667656., 4687900.,
      4708144., 5484378., 5508388., 5532398., 5556408., 5651658., 5676452.,
      5701246., 5726040., 5818938., 5844516., 5870094., 5895672., 5076180.,
      5098440., 5120700., 5142960., 4374462., 4393292., 4412122., 4430952.,
      3715576., 3730864., 3746152., 3761440., 3760504., 3777584., 3794664.,
      3811744., 4877582., 4899212., 4920842., 4942472., 5954644., 5980936.,
      6007228., 6033520., 6989898., 7020964., 7052030., 7083096., 7157178.,
      7189028., 7220878., 7252728., 7324458., 7357092., 7389726., 7422360.,
      6360372., 6388680., 6416988., 6445296., 5453454., 5477324., 5501194.,
      5525064., 4605496., 4624816., 4644136., 4663456., 4622776., 4643888.,
      4665000., 4686112., 5970398., 5997068., 6023738., 6050408., 7261876.,
      7294216., 7326556., 7358896., 8495418., 8533540., 8571662., 8609784.,
      8662698., 8701604., 8740510., 8779416., 8829978., 8869668., 8909358.,
      8949048., 7644564., 7678920., 7713276., 7747632., 6532446., 6561356.,
      6590266., 6619176., 5495416., 5518768., 5542120., 5565472., 4212208.,
      4232032., 4251856., 4271680., 5515164., 5540184., 5565204., 5590224.,
      6763560., 6793872., 6824184., 6854496., 7955860., 7991560., 8027260.,
      8062960., 8099060., 8135432., 8171804., 8208176., 8242260., 8279304.,
      8316348., 8353392., 7192808., 7224848., 7256888., 7288928., 6213788.,
      6240728., 6267668., 6294608., 5306736., 5328480., 5350224., 5371968.,
      4259816., 4277776., 4295736., 4313696., 5642890., 5665540., 5688190.,
      5710840., 6977084., 7004504., 7031924., 7059344., 8261118., 8293388.,
      8325658., 8357928., 8392782., 8425612., 8458442., 8491272., 8524446.,
      8557836., 8591226., 8624616., 7498972., 7527832., 7556692., 7585552.,
      6536970., 6561220., 6585470., 6609720., 5639720., 5659280., 5678840.,
      5698400., 4161440., 4176960., 4192480., 4208000., 5088680., 5108240.,
      5127800., 5147360., 5968624., 5992288., 6015952., 6039616., 6800248.,
      6828080., 6855912., 6883744., 6900152., 6928432., 6956712., 6984992.,
      7000056., 7028784., 7057512., 7086240., 5837680., 5862496., 5887312.,
      5912128., 4727720., 4748560., 4769400., 4790240., 3671200., 3688000.,
      3704800., 3721600.};
  const std::array<int, 4> in_shape = {{1, 9, 9, 4}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x9x9x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5484378., 5508388., 5532398., 5556408., 5651658., 5676452.,
      5701246., 5726040., 5818938., 5844516., 5870094., 5895672.,
      6989898., 7020964., 7052030., 7083096., 7157178., 7189028.,
      7220878., 7252728., 7324458., 7357092., 7389726., 7422360.,
      8495418., 8533540., 8571662., 8609784., 8662698., 8701604.,
      8740510., 8779416., 8829978., 8869668., 8909358., 8949048.};
  const std::array<int, 4> in_shape = {{1, 9, 9, 4}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x9x10x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      11780., 14930., 18154., 21448., 22442., 23436., 24430., 21070., 17660.,
      14204., 17900., 22525., 27200., 31920., 33040., 34160., 35280., 30275.,
      25250., 20210., 24730., 30965., 37209., 43456., 44653., 45850., 47047.,
      40215., 33410., 26638., 31990., 39900., 47761., 55566., 56791., 58016.,
      59241., 50470., 41790., 33208., 39410., 49000., 58471., 67816., 69041.,
      70266., 71491., 60760., 50190., 39788., 46830., 58100., 69181., 80066.,
      81291., 82516., 83741., 71050., 58590., 46368., 36670., 45335., 53787.,
      62020., 62923., 63826., 64729., 54705., 44930., 35410., 27200., 33475.,
      39530., 45360., 45990., 46620., 47250., 39725., 32450., 25430., 18700.,
      22870., 26830., 30576., 30982., 31388., 31794., 26530., 21500., 16708.};
  const std::array<int, 4> in_shape = {{1, 9, 10, 1}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x9x10x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {55566., 56791., 58016., 59241.,
                                         67816., 69041., 70266., 71491.,
                                         80066., 81291., 82516., 83741.};
  const std::array<int, 4> in_shape = {{1, 9, 10, 1}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x9x10x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      23280.,  23560.,  29500.,  29860.,  35864.,  36308.,  42364.,  42896.,
      44324.,  44884.,  46284.,  46872.,  48244.,  48860.,  41600.,  42140.,
      34860.,  35320.,  28032.,  28408.,  35350.,  35800.,  44475.,  45050.,
      53695.,  54400.,  63000.,  63840.,  65205.,  66080.,  67410.,  68320.,
      69615.,  70560.,  59725.,  60550.,  49800.,  50500.,  39850.,  40420.,
      48800.,  49460.,  61090.,  61930.,  73392.,  74418.,  85694.,  86912.,
      88046.,  89306.,  90398.,  91700.,  92750.,  94094.,  79260.,  80430.,
      65830.,  66820.,  52472.,  53276.,  63070.,  63980.,  78645.,  79800.,
      94115.,  95522.,  109466., 111132., 111867., 113582., 114268., 116032.,
      116669., 118482., 99365.,  100940., 82250.,  83580.,  65338.,  66416.,
      77630.,  78820.,  96495.,  98000.,  115115., 116942., 133476., 135632.,
      135877., 138082., 138278., 140532., 140679., 142982., 119525., 121520.,
      98700.,  100380., 78218.,  79576.,  92190.,  93660.,  114345., 116200.,
      136115., 138362., 157486., 160132., 159887., 162582., 162288., 165032.,
      164689., 167482., 139685., 142100., 115150., 117180., 91098.,  92736.,
      71960.,  73340.,  88930.,  90670.,  105468., 107574., 121562., 124040.,
      123326., 125846., 125090., 127652., 126854., 129458., 107160., 109410.,
      87970.,  89860.,  69296.,  70820.,  53150.,  54400.,  65375.,  66950.,
      77155.,  79060.,  88480.,  90720.,  89705.,  91980.,  90930.,  93240.,
      92155.,  94500.,  77425.,  79450.,  63200.,  64900.,  49490.,  50860.,
      36320.,  37400.,  44380.,  45740.,  52016.,  53660.,  59220.,  61152.,
      60004.,  61964.,  60788.,  62776.,  61572.,  63588.,  51320.,  53060.,
      41540.,  43000.,  32240.,  33416.};
  const std::array<int, 4> in_shape = {{1, 9, 10, 1}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x9x10x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      109466., 111132., 111867., 113582., 114268., 116032., 116669., 118482.,
      133476., 135632., 135877., 138082., 138278., 140532., 140679., 142982.,
      157486., 160132., 159887., 162582., 162288., 165032., 164689., 167482.};
  const std::array<int, 4> in_shape = {{1, 9, 10, 1}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x9x10x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      46280.,  46560.,  46840.,  47120.,  58640.,  59000.,  59360.,  59720.,
      71284.,  71728.,  72172.,  72616.,  84196.,  84728.,  85260.,  85792.,
      88088.,  88648.,  89208.,  89768.,  91980.,  92568.,  93156.,  93744.,
      95872.,  96488.,  97104.,  97720.,  82660.,  83200.,  83740.,  84280.,
      69260.,  69720.,  70180.,  70640.,  55688.,  56064.,  56440.,  56816.,
      70250.,  70700.,  71150.,  71600.,  88375.,  88950.,  89525.,  90100.,
      106685., 107390., 108095., 108800., 125160., 126000., 126840., 127680.,
      129535., 130410., 131285., 132160., 133910., 134820., 135730., 136640.,
      138285., 139230., 140175., 141120., 118625., 119450., 120275., 121100.,
      98900.,  99600.,  100300., 101000., 79130.,  79700.,  80270.,  80840.,
      96940.,  97600.,  98260.,  98920.,  121340., 122180., 123020., 123860.,
      145758., 146784., 147810., 148836., 170170., 171388., 172606., 173824.,
      174832., 176092., 177352., 178612., 179494., 180796., 182098., 183400.,
      184156., 185500., 186844., 188188., 157350., 158520., 159690., 160860.,
      130670., 131660., 132650., 133640., 104140., 104944., 105748., 106552.,
      125230., 126140., 127050., 127960., 156135., 157290., 158445., 159600.,
      186823., 188230., 189637., 191044., 217266., 218932., 220598., 222264.,
      222019., 223734., 225449., 227164., 226772., 228536., 230300., 232064.,
      231525., 233338., 235151., 236964., 197155., 198730., 200305., 201880.,
      163170., 164500., 165830., 167160., 129598., 130676., 131754., 132832.,
      154070., 155260., 156450., 157640., 191485., 192990., 194495., 196000.,
      228403., 230230., 232057., 233884., 264796., 266952., 269108., 271264.,
      269549., 271754., 273959., 276164., 274302., 276556., 278810., 281064.,
      279055., 281358., 283661., 285964., 237055., 239050., 241045., 243040.,
      195720., 197400., 199080., 200760., 155078., 156436., 157794., 159152.,
      182910., 184380., 185850., 187320., 226835., 228690., 230545., 232400.,
      269983., 272230., 274477., 276724., 312326., 314972., 317618., 320264.,
      317079., 319774., 322469., 325164., 321832., 324576., 327320., 330064.,
      326585., 329378., 332171., 334964., 276955., 279370., 281785., 284200.,
      228270., 230300., 232330., 234360., 180558., 182196., 183834., 185472.,
      142540., 143920., 145300., 146680., 176120., 177860., 179600., 181340.,
      208830., 210936., 213042., 215148., 240646., 243124., 245602., 248080.,
      244132., 246652., 249172., 251692., 247618., 250180., 252742., 255304.,
      251104., 253708., 256312., 258916., 212070., 214320., 216570., 218820.,
      174050., 175940., 177830., 179720., 137068., 138592., 140116., 141640.,
      105050., 106300., 107550., 108800., 129175., 130750., 132325., 133900.,
      152405., 154310., 156215., 158120., 174720., 176960., 179200., 181440.,
      177135., 179410., 181685., 183960., 179550., 181860., 184170., 186480.,
      181965., 184310., 186655., 189000., 152825., 154850., 156875., 158900.,
      124700., 126400., 128100., 129800., 97610.,  98980.,  100350., 101720.,
      71560.,  72640.,  73720.,  74800.,  87400.,  88760.,  90120.,  91480.,
      102388., 104032., 105676., 107320., 116508., 118440., 120372., 122304.,
      118048., 120008., 121968., 123928., 119588., 121576., 123564., 125552.,
      121128., 123144., 125160., 127176., 100900., 102640., 104380., 106120.,
      81620.,  83080.,  84540.,  86000.,  63304.,  64480.,  65656.,  66832.};
  const std::array<int, 4> in_shape = {{1, 9, 10, 1}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x9x10x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      217266., 218932., 220598., 222264., 222019., 223734., 225449., 227164.,
      226772., 228536., 230300., 232064., 231525., 233338., 235151., 236964.,
      264796., 266952., 269108., 271264., 269549., 271754., 273959., 276164.,
      274302., 276556., 278810., 281064., 279055., 281358., 283661., 285964.,
      312326., 314972., 317618., 320264., 317079., 319774., 322469., 325164.,
      321832., 324576., 327320., 330064., 326585., 329378., 332171., 334964.};
  const std::array<int, 4> in_shape = {{1, 9, 10, 1}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x9x10x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      92512.,  117280., 142640., 168560., 176456., 184352., 192248., 165824.,
      139000., 111808., 140980., 177425., 214270., 251475., 260365., 269255.,
      278145., 238690., 199075., 159340., 195104., 244300., 293568., 342860.,
      352352., 361844., 371336., 317400., 263680., 210224., 252644., 315105.,
      377174., 438795., 448497., 458199., 467901., 398594., 330015., 262220.,
      311444., 387205., 462014., 535815., 545517., 555219., 564921., 480074.,
      396515., 314300., 370244., 459305., 546854., 632835., 642537., 652239.,
      661941., 561554., 463015., 366380., 289520., 357880., 424536., 489440.,
      496580., 503720., 510860., 431664., 354460., 279296., 214340., 263725.,
      311350., 357175., 362145., 367115., 372085., 312730., 255375., 200060.,
      146944., 179640., 210656., 239960., 243152., 246344., 249536., 208112.,
      168560., 130912.};
  const std::array<int, 4> in_shape = {{1, 9, 10, 2}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x9x10x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {438795., 448497., 458199., 467901.,
                                         535815., 545517., 555219., 564921.,
                                         632835., 642537., 652239., 661941.};
  const std::array<int, 4> in_shape = {{1, 9, 10, 2}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x9x10x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      183920.,  185024.,  233140.,  234560.,  283528.,  285280.,  335020.,
      337120.,  350700.,  352912.,  366380.,  368704.,  382060.,  384496.,
      329512.,  331648.,  276180.,  278000.,  222128.,  223616.,  280180.,
      281960.,  352575.,  354850.,  425750.,  428540.,  499625.,  502950.,
      517265.,  520730.,  534905.,  538510.,  552545.,  556290.,  474110.,
      477380.,  395375.,  398150.,  316420.,  318680.,  387592.,  390208.,
      485270.,  488600.,  583068.,  587136.,  680890.,  685720.,  699706.,
      704704.,  718522.,  723688.,  737338.,  742672.,  630156.,  634800.,
      523430.,  527360.,  417256.,  420448.,  501676.,  505288.,  625625.,
      630210.,  748762.,  754348.,  870975.,  877590.,  890183.,  896994.,
      909391.,  916398.,  928599.,  935802.,  790930.,  797188.,  654745.,
      660030.,  520156.,  524440.,  618156.,  622888.,  768425.,  774410.,
      916762.,  924028.,  1063055., 1071630., 1082263., 1091034., 1101471.,
      1110438., 1120679., 1129842., 952210.,  960148.,  786345.,  793030.,
      623196.,  628600.,  734636.,  740488.,  911225.,  918610.,  1084762.,
      1093708., 1255135., 1265670., 1274343., 1285074., 1293551., 1304478.,
      1312759., 1323882., 1113490., 1123108., 917945.,  926030.,  726236.,
      732760.,  573544.,  579040.,  708830.,  715760.,  840684.,  849072.,
      969010.,  978880.,  983122.,  993160.,  997234.,  1007440., 1011346.,
      1021720., 854364.,  863328.,  701390.,  708920.,  552520.,  558592.,
      423700.,  428680.,  521175.,  527450.,  615110.,  622700.,  705425.,
      714350.,  715225.,  724290.,  725025.,  734230.,  734825.,  744170.,
      617390.,  625460.,  503975.,  510750.,  394660.,  400120.,  289584.,
      293888.,  353860.,  359280.,  414760.,  421312.,  472220.,  479920.,
      478492.,  486304.,  484764.,  492688.,  491036.,  499072.,  409288.,
      416224.,  331300.,  337120.,  257136.,  261824.};
  const std::array<int, 4> in_shape = {{1, 9, 10, 2}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x9x10x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      870975.,  877590.,  890183.,  896994.,  909391.,  916398.,
      928599.,  935802.,  1063055., 1071630., 1082263., 1091034.,
      1101471., 1110438., 1120679., 1129842., 1255135., 1265670.,
      1274343., 1285074., 1293551., 1304478., 1312759., 1323882.};
  const std::array<int, 4> in_shape = {{1, 9, 10, 2}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x9x10x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      366736.,  367840.,  368944.,  370048.,  464860.,  466280.,  467700.,
      469120.,  565304.,  567056.,  568808.,  570560.,  667940.,  670040.,
      672140.,  674240.,  699188.,  701400.,  703612.,  705824.,  730436.,
      732760.,  735084.,  737408.,  761684.,  764120.,  766556.,  768992.,
      656888.,  659024.,  661160.,  663296.,  550540.,  552360.,  554180.,
      556000.,  442768.,  444256.,  445744.,  447232.,  558580.,  560360.,
      562140.,  563920.,  702875.,  705150.,  707425.,  709700.,  848710.,
      851500.,  854290.,  857080.,  995925.,  999250.,  1002575., 1005900.,
      1031065., 1034530., 1037995., 1041460., 1066205., 1069810., 1073415.,
      1077020., 1101345., 1105090., 1108835., 1112580., 944950.,  948220.,
      951490.,  954760.,  787975.,  790750.,  793525.,  796300.,  630580.,
      632840.,  635100.,  637360.,  772568.,  775184.,  777800.,  780416.,
      967210.,  970540.,  973870.,  977200.,  1162068., 1166136., 1170204.,
      1174272., 1356950., 1361780., 1366610., 1371440., 1394414., 1399412.,
      1404410., 1409408., 1431878., 1437044., 1442210., 1447376., 1469342.,
      1474676., 1480010., 1485344., 1255668., 1260312., 1264956., 1269600.,
      1042930., 1046860., 1050790., 1054720., 831320.,  834512.,  837704.,
      840896.,  999740.,  1003352., 1006964., 1010576., 1246665., 1251250.,
      1255835., 1260420., 1491938., 1497524., 1503110., 1508696., 1735335.,
      1741950., 1748565., 1755180., 1773555., 1780366., 1787177., 1793988.,
      1811775., 1818782., 1825789., 1832796., 1849995., 1857198., 1864401.,
      1871604., 1575602., 1581860., 1588118., 1594376., 1304205., 1309490.,
      1314775., 1320060., 1036028., 1040312., 1044596., 1048880., 1231580.,
      1236312., 1241044., 1245776., 1530865., 1536850., 1542835., 1548820.,
      1826258., 1833524., 1840790., 1848056., 2117535., 2126110., 2134685.,
      2143260., 2155755., 2164526., 2173297., 2182068., 2193975., 2202942.,
      2211909., 2220876., 2232195., 2241358., 2250521., 2259684., 1896482.,
      1904420., 1912358., 1920296., 1566005., 1572690., 1579375., 1586060.,
      1240988., 1246392., 1251796., 1257200., 1463420., 1469272., 1475124.,
      1480976., 1815065., 1822450., 1829835., 1837220., 2160578., 2169524.,
      2178470., 2187416., 2499735., 2510270., 2520805., 2531340., 2537955.,
      2548686., 2559417., 2570148., 2576175., 2587102., 2598029., 2608956.,
      2614395., 2625518., 2636641., 2647764., 2217362., 2226980., 2236598.,
      2246216., 1827805., 1835890., 1843975., 1852060., 1445948., 1452472.,
      1458996., 1465520., 1141592., 1147088., 1152584., 1158080., 1410730.,
      1417660., 1424590., 1431520., 1672980., 1681368., 1689756., 1698144.,
      1928150., 1938020., 1947890., 1957760., 1956206., 1966244., 1976282.,
      1986320., 1984262., 1994468., 2004674., 2014880., 2012318., 2022692.,
      2033066., 2043440., 1699764., 1708728., 1717692., 1726656., 1395250.,
      1402780., 1410310., 1417840., 1098968., 1105040., 1111112., 1117184.,
      842420.,  847400.,  852380.,  857360.,  1036075., 1042350., 1048625.,
      1054900., 1222630., 1230220., 1237810., 1245400., 1401925., 1410850.,
      1419775., 1428700., 1421385., 1430450., 1439515., 1448580., 1440845.,
      1450050., 1459255., 1468460., 1460305., 1469650., 1478995., 1488340.,
      1226710., 1234780., 1242850., 1250920., 1001175., 1007950., 1014725.,
      1021500., 783860.,  789320.,  794780.,  800240.,  574864.,  579168.,
      583472.,  587776.,  702300.,  707720.,  713140.,  718560.,  822968.,
      829520.,  836072.,  842624.,  936740.,  944440.,  952140.,  959840.,
      949172.,  956984.,  964796.,  972608.,  961604.,  969528.,  977452.,
      985376.,  974036.,  982072.,  990108.,  998144.,  811640.,  818576.,
      825512.,  832448.,  656780.,  662600.,  668420.,  674240.,  509584.,
      514272.,  518960.,  523648.};
  const std::array<int, 4> in_shape = {{1, 9, 10, 2}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x9x10x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1735335., 1741950., 1748565., 1755180., 1773555., 1780366., 1787177.,
      1793988., 1811775., 1818782., 1825789., 1832796., 1849995., 1857198.,
      1864401., 1871604., 2117535., 2126110., 2134685., 2143260., 2155755.,
      2164526., 2173297., 2182068., 2193975., 2202942., 2211909., 2220876.,
      2232195., 2241358., 2250521., 2259684., 2499735., 2510270., 2520805.,
      2531340., 2537955., 2548686., 2559417., 2570148., 2576175., 2587102.,
      2598029., 2608956., 2614395., 2625518., 2636641., 2647764.};
  const std::array<int, 4> in_shape = {{1, 9, 10, 2}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x9x10x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      733216.,  929640.,  1130800., 1336440., 1399384., 1462328., 1525272.,
      1315696., 1102920., 887200.,  1119000., 1408350., 1700900., 1996330.,
      2067170., 2138010., 2208850., 1895540., 1580950., 1265400., 1549936.,
      1940780., 2332200., 2723812., 2799412., 2875012., 2950612., 2521992.,
      2095100., 1670320., 2008104., 2504530., 2997820., 3487526., 3564750.,
      3641974., 3719198., 3168172., 2622970., 2084040., 2476264., 3078530.,
      3673180., 4259766., 4336990., 4414214., 4491438., 3816652., 3152170.,
      2498440., 2944424., 3652530., 4348540., 5032006., 5109230., 5186454.,
      5263678., 4465132., 3681370., 2912840., 2300848., 2843900., 3373320.,
      3888724., 3945508., 4002292., 4059076., 3429480., 2815820., 2218480.,
      1701720., 2093550., 2471300., 2834650., 2874130., 2913610., 2953090.,
      2481620., 2026150., 1587000., 1164960., 1423880., 1669360., 1901144.,
      1926456., 1951768., 1977080., 1648432., 1334760., 1036320.};
  const std::array<int, 4> in_shape = {{1, 9, 10, 4}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x9x10x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3487526., 3564750., 3641974., 3719198., 4259766., 4336990.,
      4414214., 4491438., 5032006., 5109230., 5186454., 5263678.};
  const std::array<int, 4> in_shape = {{1, 9, 10, 4}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x9x10x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1462048.,  1466432.,  1853640.,  1859280.,  2254640.,  2261600.,
      2664536.,  2672880.,  2789976.,  2798768.,  2915416.,  2924656.,
      3040856.,  3050544.,  2622896.,  2631392.,  2198600.,  2205840.,
      1768480.,  1774400.,  2230920.,  2238000.,  2807650.,  2816700.,
      3390700.,  3401800.,  3979430.,  3992660.,  4120550.,  4134340.,
      4261670.,  4276020.,  4402790.,  4417700.,  3778060.,  3791080.,
      3150850.,  3161900.,  2521800.,  2530800.,  3089456.,  3099872.,
      3868300.,  3881560.,  4648200.,  4664400.,  5428388.,  5447624.,
      5578916.,  5598824.,  5729444.,  5750024.,  5879972.,  5901224.,
      5025480.,  5043984.,  4174540.,  4190200.,  3327920.,  3340640.,
      4001816.,  4016208.,  4990790.,  5009060.,  5973380.,  5995640.,
      6948690.,  6975052.,  7102354.,  7129500.,  7256018.,  7283948.,
      7409682.,  7438396.,  6311396.,  6336344.,  5224870.,  5245940.,
      4151000.,  4168080.,  4933656.,  4952528.,  6133190.,  6157060.,
      7317380.,  7346360.,  8485330.,  8519532.,  8638994.,  8673980.,
      8792658.,  8828428.,  8946322.,  8982876.,  7601636.,  7633304.,
      6277670.,  6304340.,  4975320.,  4996880.,  5865496.,  5888848.,
      7275590.,  7305060.,  8661380.,  8697080.,  10021970., 10064012.,
      10175634., 10218460., 10329298., 10372908., 10482962., 10527356.,
      8891876.,  8930264.,  7330470.,  7362740.,  5799640.,  5825680.,
      4579760.,  4601696.,  5660140.,  5687800.,  6713160.,  6746640.,
      7738052.,  7777448.,  7850948.,  7891016.,  7963844.,  8004584.,
      8076740.,  8118152.,  6823176.,  6858960.,  5601580.,  5631640.,
      4412720.,  4436960.,  3383560.,  3403440.,  4162050.,  4187100.,
      4912300.,  4942600.,  5633670.,  5669300.,  5712070.,  5748260.,
      5790470.,  5827220.,  5868870.,  5906180.,  4931020.,  4963240.,
      4025250.,  4052300.,  3152200.,  3174000.,  2312736.,  2329920.,
      2826120.,  2847760.,  3312560.,  3338720.,  3771544.,  3802288.,
      3821720.,  3852912.,  3871896.,  3903536.,  3922072.,  3954160.,
      3269168.,  3296864.,  2646280.,  2669520.,  2053920.,  2072640.};
  const std::array<int, 4> in_shape = {{1, 9, 10, 4}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x9x10x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6948690.,  6975052.,  7102354.,  7129500.,  7256018.,  7283948.,
      7409682.,  7438396.,  8485330.,  8519532.,  8638994.,  8673980.,
      8792658.,  8828428.,  8946322.,  8982876.,  10021970., 10064012.,
      10175634., 10218460., 10329298., 10372908., 10482962., 10527356.};
  const std::array<int, 4> in_shape = {{1, 9, 10, 4}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x9x10x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      831776.,  836160.,  840544.,  844928.,   1103752., 1109392., 1115032.,
      1120672., 1378096., 1385056., 1392016.,  1398976., 1653784., 1662128.,
      1670472., 1678816., 1764952., 1773744.,  1782536., 1791328., 1876120.,
      1885360., 1894600., 1903840., 1987288.,  1996976., 2006664., 2016352.,
      1765936., 1774432., 1782928., 1791424.,  1556552., 1563792., 1571032.,
      1578272., 1360160., 1366080., 1372000.,  1377920., 1465704., 1472784.,
      1479864., 1486944., 1943402., 1952452.,  1961502., 1970552., 2417276.,
      2428376., 2439476., 2450576., 2886046.,  2899276., 2912506., 2925736.,
      3028462., 3042252., 3056042., 3069832.,  3170878., 3185228., 3199578.,
      3213928., 3313294., 3328204., 3343114.,  3358024., 2924860., 2937880.,
      2950900., 2963920., 2556122., 2567172.,  2578222., 2589272., 2208360.,
      2217360., 2226360., 2235360., 2278320.,  2288736., 2299152., 2309568.,
      2995532., 3008792., 3022052., 3035312.,  3698376., 3714576., 3730776.,
      3746976., 4385316., 4404552., 4423788.,  4443024., 4546436., 4566344.,
      4586252., 4606160., 4707556., 4728136.,  4748716., 4769296., 4868676.,
      4889928., 4911180., 4932432., 4267336.,  4285840., 4304344., 4322848.,
      3697772., 3713432., 3729092., 3744752.,  3161520., 3174240., 3186960.,
      3199680., 3197944., 3212336., 3226728.,  3241120., 4170542., 4188812.,
      4207082., 4225352., 5113876., 5136136.,  5158396., 5180656., 6026154.,
      6052516., 6078878., 6105240., 6193434.,  6220580., 6247726., 6274872.,
      6360714., 6388644., 6416574., 6444504.,  6527994., 6556708., 6585422.,
      6614136., 5685844., 5710792., 5735740.,  5760688., 4891902., 4912972.,
      4934042., 4955112., 4147960., 4165040.,  4182120., 4199200., 4156024.,
      4174896., 4193768., 4212640., 5384782.,  5408652., 5432522., 5456392.,
      6566356., 6595336., 6624316., 6653296.,  7698954., 7733156., 7767358.,
      7801560., 7866234., 7901220., 7936206.,  7971192., 8033514., 8069284.,
      8105054., 8140824., 8200794., 8237348.,  8273902., 8310456., 7112724.,
      7144392., 7176060., 7207728., 6090782.,  6117452., 6144122., 6170792.,
      5136760., 5158320., 5179880., 5201440.,  5114104., 5137456., 5160808.,
      5184160., 6599022., 6628492., 6657962.,  6687432., 8018836., 8054536.,
      8090236., 8125936., 9371754., 9413796.,  9455838., 9497880., 9539034.,
      9581860., 9624686., 9667512., 9706314.,  9749924., 9793534., 9837144.,
      9873594., 9917988., 9962382., 10006776., 8539604., 8577992., 8616380.,
      8654768., 7289662., 7321932., 7354202.,  7386472., 6125560., 6151600.,
      6177640., 6203680., 4661680., 4683616.,  4705552., 4727488., 6098892.,
      6126552., 6154212., 6181872., 7473096.,  7506576., 7540056., 7573536.,
      8782756., 8822152., 8861548., 8900944.,  8925956., 8966024., 9006092.,
      9046160., 9069156., 9109896., 9150636.,  9191376., 9212356., 9253768.,
      9295180., 9336592., 8031816., 8067600.,  8103384., 8139168., 6931692.,
      6961752., 6991812., 7021872., 5913520.,  5937760., 5962000., 5986240.,
      4716648., 4736528., 4756408., 4776288.,  6243882., 6268932., 6293982.,
      6319032., 7714556., 7744856., 7775156.,  7805456., 9127390., 9163020.,
      9198650., 9234280., 9259054., 9295244.,  9331434., 9367624., 9390718.,
      9427468., 9464218., 9500968., 9522382.,  9559692., 9597002., 9634312.,
      8369596., 8401816., 8434036., 8466256.,  7289242., 7316292., 7343342.,
      7370392., 6282600., 6304400., 6326200.,  6348000., 4608288., 4625472.,
      4642656., 4659840., 5630600., 5652240.,  5673880., 5695520., 6598960.,
      6625120., 6651280., 6677440., 7512344.,  7543088., 7573832., 7604576.,
      7612248., 7643440., 7674632., 7705824.,  7712152., 7743792., 7775432.,
      7807072., 7812056., 7844144., 7876232.,  7908320., 6510640., 6538336.,
      6566032., 6593728., 5269320., 5292560.,  5315800., 5339040., 4089120.,
      4107840., 4126560., 4145280.};
  const std::array<int, 4> in_shape = {{1, 9, 10, 4}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x9x10x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6026154., 6052516., 6078878., 6105240., 6193434., 6220580., 6247726.,
      6274872., 6360714., 6388644., 6416574., 6444504., 6527994., 6556708.,
      6585422., 6614136., 7698954., 7733156., 7767358., 7801560., 7866234.,
      7901220., 7936206., 7971192., 8033514., 8069284., 8105054., 8140824.,
      8200794., 8237348., 8273902., 8310456., 9371754., 9413796., 9455838.,
      9497880., 9539034., 9581860., 9624686., 9667512., 9706314., 9749924.,
      9793534., 9837144., 9873594., 9917988., 9962382., 10006776.};
  const std::array<int, 4> in_shape = {{1, 9, 10, 4}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x10x8x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      9724.,  12390., 15142., 17976., 18970., 16450., 13860., 11204., 14660.,
      18525., 22460., 26460., 27580., 23765., 19900., 15990., 20150., 25315.,
      30519., 35756., 36953., 31689., 26410., 21122., 25970., 32480., 38983.,
      45472., 46697., 39886., 33110., 26376., 31906., 39760., 47551., 55272.,
      56497., 48118., 39830., 31640., 37842., 47040., 56119., 65072., 66297.,
      56350., 46550., 36904., 43778., 54320., 64687., 74872., 76097., 64582.,
      53270., 42168., 34034., 42085., 49941., 57596., 58499., 49455., 40630.,
      32030., 25080., 30875., 36470., 41860., 42490., 35735., 29200., 22890.,
      17140., 20970., 24610., 28056., 28462., 23758., 19260., 14972.};
  const std::array<int, 4> in_shape = {{1, 10, 8, 1}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x10x8x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {45472., 46697., 55272., 56497.,
                                         65072., 66297., 74872., 76097.};
  const std::array<int, 4> in_shape = {{1, 10, 8, 1}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x10x8x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      19216.,  19448.,  24480.,  24780.,  29912.,  30284.,  35504.,  35952.,
      37464.,  37940.,  32480.,  32900.,  27360.,  27720.,  22112.,  22408.,
      28950.,  29320.,  36575.,  37050.,  44335.,  44920.,  52220.,  52920.,
      54425.,  55160.,  46885.,  47530.,  39250.,  39800.,  31530.,  31980.,
      39760.,  40300.,  49940.,  50630.,  60192.,  61038.,  70504.,  71512.,
      72856.,  73906.,  62460.,  63378.,  52040.,  52820.,  41608.,  42244.,
      51198.,  51940.,  64015.,  64960.,  76811.,  77966.,  89572.,  90944.,
      91973.,  93394.,  78533.,  79772.,  65170.,  66220.,  51898.,  52752.,
      62846.,  63812.,  78295.,  79520.,  93611.,  95102.,  108780., 110544.,
      111181., 112994., 94661.,  96236.,  78330.,  79660.,  62202.,  63280.,
      74494.,  75684.,  92575.,  94080.,  110411., 112238., 127988., 130144.,
      130389., 132594., 110789., 112700., 91490.,  93100.,  72506.,  73808.,
      86142.,  87556.,  106855., 108640., 127211., 129374., 147196., 149744.,
      149597., 152194., 126917., 129164., 104650., 106540., 82810.,  84336.,
      66760.,  68068.,  82520.,  84170.,  97884.,  99882.,  112840., 115192.,
      114604., 116998., 96840.,  98910.,  79520.,  81260.,  62656.,  64060.,
      48990.,  50160.,  60275.,  61750.,  71155.,  72940.,  81620.,  83720.,
      82845.,  84980.,  69625.,  71470.,  56850.,  58400.,  44530.,  45780.,
      33280.,  34280.,  40680.,  41940.,  47696.,  49220.,  54320.,  56112.,
      55104.,  56924.,  45944.,  47516.,  37200.,  38520.,  28880.,  29944.};
  const std::array<int, 4> in_shape = {{1, 10, 8, 1}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x10x8x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      89572.,  90944.,  91973.,  93394.,  108780., 110544., 111181., 112994.,
      127988., 130144., 130389., 132594., 147196., 149744., 149597., 152194.};
  const std::array<int, 4> in_shape = {{1, 10, 8, 1}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x10x8x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      38200.,  38432.,  38664.,  38896.,  48660.,  48960.,  49260.,  49560.,
      59452.,  59824.,  60196.,  60568.,  70560.,  71008.,  71456.,  71904.,
      74452.,  74928.,  75404.,  75880.,  64540.,  64960.,  65380.,  65800.,
      54360.,  54720.,  55080.,  55440.,  43928.,  44224.,  44520.,  44816.,
      57530.,  57900.,  58270.,  58640.,  72675.,  73150.,  73625.,  74100.,
      88085.,  88670.,  89255.,  89840.,  103740., 104440., 105140., 105840.,
      108115., 108850., 109585., 110320., 93125.,  93770.,  94415.,  95060.,
      77950.,  78500.,  79050.,  79600.,  62610.,  63060.,  63510.,  63960.,
      78980.,  79520.,  80060.,  80600.,  99190.,  99880.,  100570., 101260.,
      119538., 120384., 121230., 122076., 140000., 141008., 142016., 143024.,
      144662., 145712., 146762., 147812., 124002., 124920., 125838., 126756.,
      103300., 104080., 104860., 105640., 82580.,  83216.,  83852.,  84488.,
      101654., 102396., 103138., 103880., 127085., 128030., 128975., 129920.,
      152467., 153622., 154777., 155932., 177772., 179144., 180516., 181888.,
      182525., 183946., 185367., 186788., 155827., 157066., 158305., 159544.,
      129290., 130340., 131390., 132440., 102942., 103796., 104650., 105504.,
      124726., 125692., 126658., 127624., 155365., 156590., 157815., 159040.,
      185731., 187222., 188713., 190204., 215796., 217560., 219324., 221088.,
      220549., 222362., 224175., 225988., 187747., 189322., 190897., 192472.,
      155330., 156660., 157990., 159320., 123326., 124404., 125482., 126560.,
      147798., 148988., 150178., 151368., 183645., 185150., 186655., 188160.,
      218995., 220822., 222649., 224476., 253820., 255976., 258132., 260288.,
      258573., 260778., 262983., 265188., 219667., 221578., 223489., 225400.,
      181370., 182980., 184590., 186200., 143710., 145012., 146314., 147616.,
      170870., 172284., 173698., 175112., 211925., 213710., 215495., 217280.,
      252259., 254422., 256585., 258748., 291844., 294392., 296940., 299488.,
      296597., 299194., 301791., 304388., 251587., 253834., 256081., 258328.,
      207410., 209300., 211190., 213080., 164094., 165620., 167146., 168672.,
      132212., 133520., 134828., 136136., 163390., 165040., 166690., 168340.,
      193770., 195768., 197766., 199764., 223328., 225680., 228032., 230384.,
      226814., 229208., 231602., 233996., 191610., 193680., 195750., 197820.,
      157300., 159040., 160780., 162520., 123908., 125312., 126716., 128120.,
      96810.,  97980.,  99150.,  100320., 119075., 120550., 122025., 123500.,
      140525., 142310., 144095., 145880., 161140., 163240., 165340., 167440.,
      163555., 165690., 167825., 169960., 137405., 139250., 141095., 142940.,
      112150., 113700., 115250., 116800., 87810.,  89060.,  90310.,  91560.,
      65560.,  66560.,  67560.,  68560.,  80100.,  81360.,  82620.,  83880.,
      93868.,  95392.,  96916.,  98440.,  106848., 108640., 110432., 112224.,
      108388., 110208., 112028., 113848., 90316.,  91888.,  93460.,  95032.,
      73080.,  74400.,  75720.,  77040.,  56696.,  57760.,  58824.,  59888.};
  const std::array<int, 4> in_shape = {{1, 10, 8, 1}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x10x8x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      177772., 179144., 180516., 181888., 182525., 183946., 185367., 186788.,
      215796., 217560., 219324., 221088., 220549., 222362., 224175., 225988.,
      253820., 255976., 258132., 260288., 258573., 260778., 262983., 265188.,
      291844., 294392., 296940., 299488., 296597., 299194., 301791., 304388.};
  const std::array<int, 4> in_shape = {{1, 10, 8, 1}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x10x8x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      76160.,  97080.,  118688., 140952., 148848., 129104., 108800., 87968.,
      115220., 145625., 176590., 208075., 216965., 186970., 156575., 125820.,
      158704., 199400., 240408., 281680., 291172., 249696., 208100., 166432.,
      204820., 256165., 307454., 358631., 368333., 314594., 261135., 208012.,
      251860., 313845., 375326., 436247., 445949., 379778., 314335., 249676.,
      298900., 371525., 443198., 513863., 523565., 444962., 367535., 291340.,
      345940., 429205., 511070., 591479., 601181., 510146., 420735., 333004.,
      268576., 332060., 393984., 454300., 461440., 390024., 320360., 252496.,
      197540., 243125., 287110., 329455., 334425., 281170., 229675., 179980.,
      134624., 164640., 193136., 220080., 223272., 186272., 150920., 117248.};
  const std::array<int, 4> in_shape = {{1, 10, 8, 2}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x10x8x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {358631., 368333., 436247., 445949.,
                                         513863., 523565., 591479., 601181.};
  const std::array<int, 4> in_shape = {{1, 10, 8, 2}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x10x8x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      151408.,  152320.,  192980.,  194160.,  235912.,  237376.,  280140.,
      281904.,  295820.,  297696.,  256552.,  258208.,  216180.,  217600.,
      174768.,  175936.,  228980.,  230440.,  289375.,  291250.,  350870.,
      353180.,  413385.,  416150.,  431025.,  433930.,  371390.,  373940.,
      310975.,  313150.,  249860.,  251640.,  315272.,  317408.,  396070.,
      398800.,  477468.,  480816.,  559370.,  563360.,  578186.,  582344.,
      495756.,  499392.,  413110.,  416200.,  330344.,  332864.,  406700.,
      409640.,  508585.,  512330.,  610330.,  614908.,  711823.,  717262.,
      731031.,  736666.,  624274.,  629188.,  518105.,  522270.,  412636.,
      416024.,  499884.,  503720.,  622825.,  627690.,  744730.,  750652.,
      865487.,  872494.,  884695.,  891898.,  753298.,  759556.,  623385.,
      628670.,  495068.,  499352.,  593068.,  597800.,  737065.,  743050.,
      879130.,  886396.,  1019151., 1027726., 1038359., 1047130., 882322.,
      889924.,  728665.,  735070.,  577500.,  582680.,  686252.,  691880.,
      851305.,  858410.,  1013530., 1022140., 1172815., 1182958., 1192023.,
      1202362., 1011346., 1020292., 833945.,  841470.,  659932.,  666008.,
      531944.,  537152.,  657550.,  664120.,  780012.,  787968.,  899234.,
      908600.,  913346.,  922880.,  771804.,  780048.,  633790.,  640720.,
      499400.,  504992.,  390420.,  395080.,  480375.,  486250.,  567110.,
      574220.,  650545.,  658910.,  660345.,  668850.,  554990.,  562340.,
      453175.,  459350.,  354980.,  359960.,  265264.,  269248.,  324260.,
      329280.,  380200.,  386272.,  433020.,  440160.,  439292.,  446544.,
      366280.,  372544.,  296580.,  301840.,  230256.,  234496.};
  const std::array<int, 4> in_shape = {{1, 10, 8, 2}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x10x8x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      711823.,  717262.,  731031.,  736666.,  865487.,  872494.,
      884695.,  891898.,  1019151., 1027726., 1038359., 1047130.,
      1172815., 1182958., 1192023., 1202362.};
  const std::array<int, 4> in_shape = {{1, 10, 8, 2}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x10x8x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      301904.,  302816.,  303728.,  304640.,  384780.,  385960.,  387140.,
      388320.,  470360.,  471824.,  473288.,  474752.,  558516.,  560280.,
      562044.,  563808.,  589764.,  591640.,  593516.,  595392.,  511448.,
      513104.,  514760.,  516416.,  430940.,  432360.,  433780.,  435200.,
      348368.,  349536.,  350704.,  351872.,  456500.,  457960.,  459420.,
      460880.,  576875.,  578750.,  580625.,  582500.,  699430.,  701740.,
      704050.,  706360.,  824005.,  826770.,  829535.,  832300.,  859145.,
      862050.,  864955.,  867860.,  740230.,  742780.,  745330.,  747880.,
      619775.,  621950.,  624125.,  626300.,  497940.,  499720.,  501500.,
      503280.,  628408.,  630544.,  632680.,  634816.,  789410.,  792140.,
      794870.,  797600.,  951588.,  954936.,  958284.,  961632.,  1114750.,
      1118740., 1122730., 1126720., 1152214., 1156372., 1160530., 1164688.,
      987876.,  991512.,  995148.,  998784.,  823130.,  826220.,  829310.,
      832400.,  658168.,  660688.,  663208.,  665728.,  810460.,  813400.,
      816340.,  819280.,  1013425., 1017170., 1020915., 1024660., 1216082.,
      1220660., 1225238., 1229816., 1418207., 1423646., 1429085., 1434524.,
      1456427., 1462062., 1467697., 1473332., 1243634., 1248548., 1253462.,
      1258376., 1032045., 1036210., 1040375., 1044540., 821884.,  825272.,
      828660.,  832048.,  995932.,  999768.,  1003604., 1007440., 1240785.,
      1245650., 1250515., 1255380., 1483538., 1489460., 1495382., 1501304.,
      1723967., 1730974., 1737981., 1744988., 1762187., 1769390., 1776593.,
      1783796., 1500338., 1506596., 1512854., 1519112., 1241485., 1246770.,
      1252055., 1257340., 985852.,  990136.,  994420.,  998704.,  1181404.,
      1186136., 1190868., 1195600., 1468145., 1474130., 1480115., 1486100.,
      1750994., 1758260., 1765526., 1772792., 2029727., 2038302., 2046877.,
      2055452., 2067947., 2076718., 2085489., 2094260., 1757042., 1764644.,
      1772246., 1779848., 1450925., 1457330., 1463735., 1470140., 1149820.,
      1155000., 1160180., 1165360., 1366876., 1372504., 1378132., 1383760.,
      1695505., 1702610., 1709715., 1716820., 2018450., 2027060., 2035670.,
      2044280., 2335487., 2345630., 2355773., 2365916., 2373707., 2384046.,
      2394385., 2404724., 2013746., 2022692., 2031638., 2040584., 1660365.,
      1667890., 1675415., 1682940., 1313788., 1319864., 1325940., 1332016.,
      1058680., 1063888., 1069096., 1074304., 1308530., 1315100., 1321670.,
      1328240., 1552068., 1560024., 1567980., 1575936., 1789102., 1798468.,
      1807834., 1817200., 1817158., 1826692., 1836226., 1845760., 1535364.,
      1543608., 1551852., 1560096., 1260650., 1267580., 1274510., 1281440.,
      993208.,  998800.,  1004392., 1009984., 776180.,  780840.,  785500.,
      790160.,  954875.,  960750.,  966625.,  972500.,  1127110., 1134220.,
      1141330., 1148440., 1292725., 1301090., 1309455., 1317820., 1312185.,
      1320690., 1329195., 1337700., 1102630., 1109980., 1117330., 1124680.,
      900175.,  906350.,  912525.,  918700.,  704980.,  709960.,  714940.,
      719920.,  526544.,  530528.,  534512.,  538496.,  643500.,  648520.,
      653540.,  658560.,  754328.,  760400.,  766472.,  772544.,  858900.,
      866040.,  873180.,  880320.,  871332.,  878584.,  885836.,  893088.,
      726296.,  732560.,  738824.,  745088.,  587900.,  593160.,  598420.,
      603680.,  456272.,  460512.,  464752.,  468992.};
  const std::array<int, 4> in_shape = {{1, 10, 8, 2}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x10x8x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1418207., 1423646., 1429085., 1434524., 1456427., 1462062., 1467697.,
      1473332., 1723967., 1730974., 1737981., 1744988., 1762187., 1769390.,
      1776593., 1783796., 2029727., 2038302., 2046877., 2055452., 2067947.,
      2076718., 2085489., 2094260., 2335487., 2345630., 2355773., 2365916.,
      2373707., 2384046., 2394385., 2404724.};
  const std::array<int, 4> in_shape = {{1, 10, 8, 2}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x10x8x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      602784.,  768520.,  939760.,  1116248., 1179192., 1022896., 862120.,
      697120.,  913560.,  1154750., 1400420., 1650250., 1721090., 1483220.,
      1242150., 998200.,  1259696., 1582780., 1908360., 2236052., 2311652.,
      1982376., 1652140., 1321328., 1626856., 2034690., 2442076., 2848566.,
      2925790., 2498860., 2074170., 1652168., 2001384., 2493890., 2982364.,
      3466358., 3543582., 3017644., 2497530., 1983688., 2375912., 2953090.,
      3522652., 4084150., 4161374., 3536428., 2920890., 2315208., 2750440.,
      3412290., 4062940., 4701942., 4779166., 4055212., 3344250., 2646728.,
      2133872., 2638060., 3129768., 3608612., 3665396., 3097800., 2544220.,
      2005040., 1567960., 1929550., 2278340., 2614010., 2653490., 2230580.,
      1821750., 1427320., 1067040., 1304680., 1530160., 1743224., 1768536.,
      1475056., 1194760., 927904.};
  const std::array<int, 4> in_shape = {{1, 10, 8, 4}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x10x8x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {2848566., 2925790., 3466358.,
                                         3543582., 4084150., 4161374.,
                                         4701942., 4779166.};
  const std::array<int, 4> in_shape = {{1, 10, 8, 4}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x10x8x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1201952., 1205568., 1532360., 1537040., 1873712., 1879520., 2225496.,
      2232496., 2350936., 2358384., 2039216., 2045792., 1718600., 1724240.,
      1389600., 1394240., 1821320., 1827120., 2302050., 2309500., 2791660.,
      2800840., 3289510., 3300500., 3430630., 3442180., 2956300., 2966440.,
      2475650., 2484300., 1989320., 1996400., 2510896., 2519392., 3154700.,
      3165560., 3803400., 3816720., 4456228., 4472104., 4606756., 4623304.,
      3950280., 3964752., 3291980., 3304280., 2632624., 2642656., 3242008.,
      3253712., 4054470., 4069380., 4865924., 4884152., 5675474., 5697132.,
      5829138., 5851580., 4978148., 4997720., 4131750., 4148340., 3290840.,
      3304336., 3987480., 4002768., 4968390., 4987780., 5941124., 5964728.,
      6904786., 6932716., 7058450., 7087164., 6010340., 6035288., 4973990.,
      4995060., 3950296., 3967376., 4732952., 4751824., 5882310., 5906180.,
      7016324., 7045304., 8134098., 8168300., 8287762., 8322748., 7042532.,
      7072856., 5816230., 5841780., 4609752., 4630416., 5478424., 5500880.,
      6796230., 6824580., 8091524., 8125880., 9363410., 9403884., 9517074.,
      9558332., 8074724., 8110424., 6658470., 6688500., 5269208., 5293456.,
      4246960., 4267744., 5249900., 5276120., 6227784., 6259536., 7179844.,
      7217224., 7292740., 7330792., 6162696., 6195600., 5060780., 5088440.,
      3987760., 4010080., 3117320., 3135920., 3835650., 3859100., 4528300.,
      4556680., 5194630., 5228020., 5273030., 5306980., 4431820., 4461160.,
      3618850., 3643500., 2834760., 2854640., 2118176., 2134080., 2589320.,
      2609360., 3036080., 3060320., 3457944., 3486448., 3508120., 3537072.,
      2925104., 2950112., 2368520., 2389520., 1838880., 1855808.};
  const std::array<int, 4> in_shape = {{1, 10, 8, 4}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x10x8x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5675474., 5697132., 5829138., 5851580., 6904786., 6932716.,
      7058450., 7087164., 8134098., 8168300., 8287762., 8322748.,
      9363410., 9403884., 9517074., 9558332.};
  const std::array<int, 4> in_shape = {{1, 10, 8, 4}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x10x8x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      689184.,  692800.,  696416.,  700032.,  920904.,  925584.,  930264.,
      934944.,  1158064., 1163872., 1169680., 1175488., 1399640., 1406640.,
      1413640., 1420640., 1510808., 1518256., 1525704., 1533152., 1354160.,
      1360736., 1367312., 1373888., 1204360., 1210000., 1215640., 1221280.,
      1062432., 1067072., 1071712., 1076352., 1204840., 1210640., 1216440.,
      1222240., 1605546., 1612996., 1620446., 1627896., 2007548., 2016728.,
      2025908., 2035088., 2409566., 2420556., 2431546., 2442536., 2551982.,
      2563532., 2575082., 2586632., 2267260., 2277400., 2287540., 2297680.,
      1994554., 2003204., 2011854., 2020504., 1735144., 1742224., 1749304.,
      1756384., 1860400., 1868896., 1877392., 1885888., 2455468., 2466328.,
      2477188., 2488048., 3043848., 3057168., 3070488., 3083808., 3624004.,
      3639880., 3655756., 3671632., 3785124., 3801672., 3818220., 3834768.,
      3333384., 3347856., 3362328., 3376800., 2902668., 2914968., 2927268.,
      2939568., 2494512., 2504544., 2514576., 2524608., 2598520., 2610224.,
      2621928., 2633632., 3398990., 3413900., 3428810., 3443720., 4180948.,
      4199176., 4217404., 4235632., 4942602., 4964260., 4985918., 5007576.,
      5109882., 5132324., 5154766., 5177208., 4466516., 4486088., 4505660.,
      4525232., 3857022., 3873612., 3890202., 3906792., 3283192., 3296688.,
      3310184., 3323680., 3364984., 3380272., 3395560., 3410848., 4370382.,
      4389772., 4409162., 4428552., 5342932., 5366536., 5390140., 5413744.,
      6280842., 6308772., 6336702., 6364632., 6448122., 6476836., 6505550.,
      6534264., 5608020., 5632968., 5657916., 5682864., 4816126., 4837196.,
      4858266., 4879336., 4074232., 4091312., 4108392., 4125472., 4131448.,
      4150320., 4169192., 4188064., 5341774., 5365644., 5389514., 5413384.,
      6504916., 6533896., 6562876., 6591856., 7619082., 7653284., 7687486.,
      7721688., 7786362., 7821348., 7856334., 7891320., 6749524., 6779848.,
      6810172., 6840496., 5775230., 5800780., 5826330., 5851880., 4865272.,
      4885936., 4906600., 4927264., 4897912., 4920368., 4942824., 4965280.,
      6313166., 6341516., 6369866., 6398216., 7666900., 7701256., 7735612.,
      7769968., 8957322., 8997796., 9038270., 9078744., 9124602., 9165860.,
      9207118., 9248376., 7891028., 7926728., 7962428., 7998128., 6734334.,
      6764364., 6794394., 6824424., 5656312., 5680560., 5704808., 5729056.,
      4406832., 4427616., 4448400., 4469184., 5754988., 5781208., 5807428.,
      5833648., 7044744., 7076496., 7108248., 7140000., 8274564., 8311944.,
      8349324., 8386704., 8417764., 8455816., 8493868., 8531920., 7336328.,
      7369232., 7402136., 7435040., 6327628., 6355288., 6382948., 6410608.,
      5393200., 5415520., 5437840., 5460160., 4382056., 4400656., 4419256.,
      4437856., 5789290., 5812740., 5836190., 5859640., 7145084., 7173464.,
      7201844., 7230224., 8448158., 8481548., 8514938., 8548328., 8579822.,
      8613772., 8647722., 8681672., 7537916., 7567256., 7596596., 7625936.,
      6560762., 6585412., 6610062., 6634712., 5649640., 5669520., 5689400.,
      5709280., 4220448., 4236352., 4252256., 4268160., 5158600., 5178640.,
      5198680., 5218720., 6047920., 6072160., 6096400., 6120640., 6887384.,
      6915888., 6944392., 6972896., 6987288., 7016240., 7045192., 7074144.,
      5825200., 5850208., 5875216., 5900224., 4716040., 4737040., 4758040.,
      4779040., 3660832., 3677760., 3694688., 3711616.};
  const std::array<int, 4> in_shape = {{1, 10, 8, 4}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x10x8x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4942602., 4964260., 4985918., 5007576., 5109882., 5132324., 5154766.,
      5177208., 6280842., 6308772., 6336702., 6364632., 6448122., 6476836.,
      6505550., 6534264., 7619082., 7653284., 7687486., 7721688., 7786362.,
      7821348., 7856334., 7891320., 8957322., 8997796., 9038270., 9078744.,
      9124602., 9165860., 9207118., 9248376.};
  const std::array<int, 4> in_shape = {{1, 10, 8, 4}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x10x9x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      10752., 13660., 16648., 19712., 20706., 21700., 18760., 15760., 12704.,
      16280., 20525., 24830., 29190., 30310., 31430., 27020., 22575., 18100.,
      22440., 28140., 33864., 39606., 40803., 42000., 35952., 29910., 23880.,
      28980., 36190., 43372., 50519., 51744., 52969., 45178., 37450., 29792.,
      35658., 44380., 53011., 61544., 62769., 63994., 54439., 45010., 35714.,
      42336., 52570., 62650., 72569., 73794., 75019., 63700., 52570., 41636.,
      49014., 60760., 72289., 83594., 84819., 86044., 72961., 60130., 47558.,
      38112., 47085., 55824., 64323., 65226., 66129., 55860., 45855., 36120.,
      28090., 34550., 40775., 46760., 47390., 48020., 40355., 32950., 25810.,
      19200., 23470., 27520., 31346., 31752., 32158., 26824., 21730., 16880.};
  const std::array<int, 4> in_shape = {{1, 10, 9, 1}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x10x9x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {50519., 51744., 52969., 61544.,
                                         62769., 63994., 72569., 73794.,
                                         75019., 83594., 84819., 86044.};
  const std::array<int, 4> in_shape = {{1, 10, 9, 1}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x10x9x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      21248.,  21504.,  26990.,  27320.,  32888.,  33296.,  38934.,  39424.,
      40894.,  41412.,  42854.,  43400.,  37040.,  37520.,  31110.,  31520.,
      25072.,  25408.,  32150.,  32560.,  40525.,  41050.,  49015.,  49660.,
      57610.,  58380.,  59815.,  60620.,  62020.,  62860.,  53305.,  54040.,
      44525.,  45150.,  35690.,  36200.,  44280.,  44880.,  55515.,  56280.,
      66792.,  67728.,  78099.,  79212.,  80451.,  81606.,  82803.,  84000.,
      70860.,  71904.,  58935.,  59820.,  47040.,  47760.,  57134.,  57960.,
      71330.,  72380.,  85463.,  86744.,  99519.,  101038., 101920., 103488.,
      104321., 105938., 88949.,  90356.,  73710.,  74900.,  58618.,  59584.,
      70238.,  71316.,  87395.,  88760.,  104363., 106022., 121128., 123088.,
      123529., 125538., 125930., 127988., 107093., 108878., 88515.,  90020.,
      70210.,  71428.,  83342.,  84672.,  103460., 105140., 123263., 125300.,
      142737., 145138., 145138., 147588., 147539., 150038., 125237., 127400.,
      103320., 105140., 81802.,  83272.,  96446.,  98028.,  119525., 121520.,
      142163., 144578., 164346., 167188., 166747., 169638., 169148., 172088.,
      143381., 145922., 118125., 120260., 93394.,  95116.,  74760.,  76224.,
      92325.,  94170.,  109416., 111648., 126021., 128646., 127785., 130452.,
      129549., 132258., 109380., 111720., 89745.,  91710.,  70656.,  72240.,
      54870.,  56180.,  67450.,  69100.,  79555.,  81550.,  91175.,  93520.,
      92400.,  94780.,  93625.,  96040.,  78625.,  80710.,  64150.,  65900.,
      50210.,  51620.,  37280.,  38400.,  45530.,  46940.,  53336.,  55040.,
      60690.,  62692.,  61474.,  63504.,  62258.,  64316.,  51872.,  53648.,
      41970.,  43460.,  32560.,  33760.};
  const std::array<int, 4> in_shape = {{1, 10, 9, 1}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x10x9x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      99519.,  101038., 101920., 103488., 104321., 105938., 121128., 123088.,
      123529., 125538., 125930., 127988., 142737., 145138., 145138., 147588.,
      147539., 150038., 164346., 167188., 166747., 169638., 169148., 172088.};
  const std::array<int, 4> in_shape = {{1, 10, 9, 1}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x10x9x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      42240.,  42496.,  42752.,  43008.,  53650.,  53980.,  54310.,  54640.,
      65368.,  65776.,  66184.,  66592.,  77378.,  77868.,  78358.,  78848.,
      81270.,  81788.,  82306.,  82824.,  85162.,  85708.,  86254.,  86800.,
      73600.,  74080.,  74560.,  75040.,  61810.,  62220.,  62630.,  63040.,
      49808.,  50144.,  50480.,  50816.,  63890.,  64300.,  64710.,  65120.,
      80525.,  81050.,  81575.,  82100.,  97385.,  98030.,  98675.,  99320.,
      114450., 115220., 115990., 116760., 118825., 119630., 120435., 121240.,
      123200., 124040., 124880., 125720., 105875., 106610., 107345., 108080.,
      88425.,  89050.,  89675.,  90300.,  70870.,  71380.,  71890.,  72400.,
      87960.,  88560.,  89160.,  89760.,  110265., 111030., 111795., 112560.,
      132648., 133584., 134520., 135456., 155085., 156198., 157311., 158424.,
      159747., 160902., 162057., 163212., 164409., 165606., 166803., 168000.,
      140676., 141720., 142764., 143808., 116985., 117870., 118755., 119640.,
      93360.,  94080.,  94800.,  95520.,  113442., 114268., 115094., 115920.,
      141610., 142660., 143710., 144760., 169645., 170926., 172207., 173488.,
      197519., 199038., 200557., 202076., 202272., 203840., 205408., 206976.,
      207025., 208642., 210259., 211876., 176491., 177898., 179305., 180712.,
      146230., 147420., 148610., 149800., 116270., 117236., 118202., 119168.,
      139398., 140476., 141554., 142632., 173425., 174790., 176155., 177520.,
      207067., 208726., 210385., 212044., 240296., 242256., 244216., 246176.,
      245049., 247058., 249067., 251076., 249802., 251860., 253918., 255976.,
      212401., 214186., 215971., 217756., 175525., 177030., 178535., 180040.,
      139202., 140420., 141638., 142856., 165354., 166684., 168014., 169344.,
      205240., 206920., 208600., 210280., 244489., 246526., 248563., 250600.,
      283073., 285474., 287875., 290276., 287826., 290276., 292726., 295176.,
      292579., 295078., 297577., 300076., 248311., 250474., 252637., 254800.,
      204820., 206640., 208460., 210280., 162134., 163604., 165074., 166544.,
      191310., 192892., 194474., 196056., 237055., 239050., 241045., 243040.,
      281911., 284326., 286741., 289156., 325850., 328692., 331534., 334376.,
      330603., 333494., 336385., 339276., 335356., 338296., 341236., 344176.,
      284221., 286762., 289303., 291844., 234115., 236250., 238385., 240520.,
      185066., 186788., 188510., 190232., 148056., 149520., 150984., 152448.,
      182805., 184650., 186495., 188340., 216600., 218832., 221064., 223296.,
      249417., 252042., 254667., 257292., 252903., 255570., 258237., 260904.,
      256389., 259098., 261807., 264516., 216420., 218760., 221100., 223440.,
      177525., 179490., 181455., 183420., 139728., 141312., 142896., 144480.,
      108430., 109740., 111050., 112360., 133250., 134900., 136550., 138200.,
      157115., 159110., 161105., 163100., 180005., 182350., 184695., 187040.,
      182420., 184800., 187180., 189560., 184835., 187250., 189665., 192080.,
      155165., 157250., 159335., 161420., 126550., 128300., 130050., 131800.,
      99010.,  100420., 101830., 103240., 73440.,  74560.,  75680.,  76800.,
      89650.,  91060.,  92470.,  93880.,  104968., 106672., 108376., 110080.,
      119378., 121380., 123382., 125384., 120918., 122948., 124978., 127008.,
      122458., 124516., 126574., 128632., 101968., 103744., 105520., 107296.,
      82450.,  83940.,  85430.,  86920.,  63920.,  65120.,  66320.,  67520.};
  const std::array<int, 4> in_shape = {{1, 10, 9, 1}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x10x9x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      197519., 199038., 200557., 202076., 202272., 203840., 205408., 206976.,
      207025., 208642., 210259., 211876., 240296., 242256., 244216., 246176.,
      245049., 247058., 249067., 251076., 249802., 251860., 253918., 255976.,
      283073., 285474., 287875., 290276., 287826., 290276., 292726., 295176.,
      292579., 295078., 297577., 300076., 325850., 328692., 331534., 334376.,
      330603., 333494., 336385., 339276., 335356., 338296., 341236., 344176.};
  const std::array<int, 4> in_shape = {{1, 10, 9, 1}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x10x9x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      84336.,  107180., 130664., 154756., 162652., 170548., 147464., 123900.,
      99888.,  128100., 161525., 195430., 229775., 238665., 247555., 212830.,
      177825., 142580., 176904., 221850., 266988., 312270., 321762., 331254.,
      283548., 235890., 188328., 228732., 285635., 342314., 398713., 408415.,
      418117., 356594., 295575., 235116., 281652., 350525., 418670., 486031.,
      495733., 505435., 429926., 355425., 281988., 334572., 415415., 495026.,
      573349., 583051., 592753., 503258., 415275., 328860., 387492., 480305.,
      571382., 660667., 670369., 680071., 576590., 475125., 375732., 300888.,
      371670., 440580., 507570., 514710., 521850., 440724., 361710., 284856.,
      221340., 272175., 321130., 368165., 373135., 378105., 317650., 259275.,
      203020., 150864., 184340., 216056., 245980., 249172., 252364., 210392.,
      170340., 132240.};
  const std::array<int, 4> in_shape = {{1, 10, 9, 2}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x10x9x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {398713., 408415., 418117., 486031.,
                                         495733., 505435., 573349., 583051.,
                                         592753., 660667., 670369., 680071.};
  const std::array<int, 4> in_shape = {{1, 10, 9, 2}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x10x9x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      167664.,  168672.,  213060.,  214360.,  259720.,  261328.,  307580.,
      309512.,  323260.,  325304.,  338940.,  341096.,  293032.,  294928.,
      246180.,  247800.,  198448.,  199776.,  254580.,  256200.,  320975.,
      323050.,  388310.,  390860.,  456505.,  459550.,  474145.,  477330.,
      491785.,  495110.,  422750.,  425660.,  353175.,  355650.,  283140.,
      285160.,  351432.,  353808.,  440670.,  443700.,  530268.,  533976.,
      620130.,  624540.,  638946.,  643524.,  657762.,  662508.,  562956.,
      567096.,  468270.,  471780.,  373800.,  376656.,  454188.,  457464.,
      567105.,  571270.,  679546.,  684628.,  791399.,  797426.,  810607.,
      816830.,  829815.,  836234.,  707602.,  713188.,  586425.,  591150.,
      466396.,  470232.,  559020.,  563304.,  695625.,  701050.,  830746.,
      837340.,  964271.,  972062.,  983479.,  991466.,  1002687., 1010870.,
      852754.,  859852.,  704865.,  710850.,  559132.,  563976.,  663852.,
      669144.,  824145.,  830830.,  981946.,  990052.,  1137143., 1146698.,
      1156351., 1166102., 1175559., 1185506., 997906.,  1006516., 823305.,
      830550.,  651868.,  657720.,  768684.,  774984.,  952665.,  960610.,
      1133146., 1142764., 1310015., 1321334., 1329223., 1340738., 1348431.,
      1360142., 1143058., 1153180., 941745.,  950250.,  744604.,  751464.,
      595944.,  601776.,  735990.,  743340.,  872268.,  881160.,  1004682.,
      1015140., 1018794., 1029420., 1032906., 1043700., 872124.,  881448.,
      715590.,  723420.,  563400.,  569712.,  437460.,  442680.,  537775.,
      544350.,  634310.,  642260.,  726985.,  736330.,  736785.,  746270.,
      746585.,  756210.,  626990.,  635300.,  511575.,  518550.,  400420.,
      406040.,  297264.,  301728.,  363060.,  368680.,  425320.,  432112.,
      483980.,  491960.,  490252.,  498344.,  496524.,  504728.,  413704.,
      420784.,  334740.,  340680.,  259696.,  264480.};
  const std::array<int, 4> in_shape = {{1, 10, 9, 2}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x10x9x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      791399.,  797426.,  810607.,  816830.,  829815.,  836234.,
      964271.,  972062.,  983479.,  991466.,  1002687., 1010870.,
      1137143., 1146698., 1156351., 1166102., 1175559., 1185506.,
      1310015., 1321334., 1329223., 1340738., 1348431., 1360142.};
  const std::array<int, 4> in_shape = {{1, 10, 9, 2}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x10x9x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      334320.,  335328.,  336336.,  337344.,  424820.,  426120.,  427420.,
      428720.,  517832.,  519440.,  521048.,  522656.,  613228.,  615160.,
      617092.,  619024.,  644476.,  646520.,  648564.,  650608.,  675724.,
      677880.,  680036.,  682192.,  584168.,  586064.,  587960.,  589856.,
      490740.,  492360.,  493980.,  495600.,  395568.,  396896.,  398224.,
      399552.,  507540.,  509160.,  510780.,  512400.,  639875.,  641950.,
      644025.,  646100.,  774070.,  776620.,  779170.,  781720.,  909965.,
      913010.,  916055.,  919100.,  945105.,  948290.,  951475.,  954660.,
      980245.,  983570.,  986895.,  990220.,  842590.,  845500.,  848410.,
      851320.,  703875.,  706350.,  708825.,  711300.,  564260.,  566280.,
      568300.,  570320.,  700488.,  702864.,  705240.,  707616.,  878310.,
      881340.,  884370.,  887400.,  1056828., 1060536., 1064244., 1067952.,
      1235850., 1240260., 1244670., 1249080., 1273314., 1277892., 1282470.,
      1287048., 1310778., 1315524., 1320270., 1325016., 1121772., 1125912.,
      1130052., 1134192., 933030.,  936540.,  940050.,  943560.,  744744.,
      747600.,  750456.,  753312.,  905100.,  908376.,  911652.,  914928.,
      1130045., 1134210., 1138375., 1142540., 1354010., 1359092., 1364174.,
      1369256., 1576771., 1582798., 1588825., 1594852., 1614991., 1621214.,
      1627437., 1633660., 1653211., 1659630., 1666049., 1672468., 1409618.,
      1415204., 1420790., 1426376., 1168125., 1172850., 1177575., 1182300.,
      928956.,  932792.,  936628.,  940464.,  1113756., 1118040., 1122324.,
      1126608., 1385825., 1391250., 1396675., 1402100., 1654898., 1661492.,
      1668086., 1674680., 1920751., 1928542., 1936333., 1944124., 1958971.,
      1966958., 1974945., 1982932., 1997191., 2005374., 2013557., 2021740.,
      1698410., 1705508., 1712606., 1719704., 1403745., 1409730., 1415715.,
      1421700., 1113420., 1118264., 1123108., 1127952., 1322412., 1327704.,
      1332996., 1338288., 1641605., 1648290., 1654975., 1661660., 1955786.,
      1963892., 1971998., 1980104., 2264731., 2274286., 2283841., 2293396.,
      2302951., 2312702., 2322453., 2332204., 2341171., 2351118., 2361065.,
      2371012., 1987202., 1995812., 2004422., 2013032., 1639365., 1646610.,
      1653855., 1661100., 1297884., 1303736., 1309588., 1315440., 1531068.,
      1537368., 1543668., 1549968., 1897385., 1905330., 1913275., 1921220.,
      2256674., 2266292., 2275910., 2285528., 2608711., 2620030., 2631349.,
      2642668., 2646931., 2658446., 2669961., 2681476., 2685151., 2696862.,
      2708573., 2720284., 2275994., 2286116., 2296238., 2306360., 1874985.,
      1883490., 1891995., 1900500., 1482348., 1489208., 1496068., 1502928.,
      1186056., 1191888., 1197720., 1203552., 1464630., 1471980., 1479330.,
      1486680., 1735644., 1744536., 1753428., 1762320., 1998906., 2009364.,
      2019822., 2030280., 2026962., 2037588., 2048214., 2058840., 2055018.,
      2065812., 2076606., 2087400., 1734924., 1744248., 1753572., 1762896.,
      1423350., 1431180., 1439010., 1446840., 1120488., 1126800., 1133112.,
      1139424., 869700.,  874920.,  880140.,  885360.,  1068975., 1075550.,
      1082125., 1088700., 1260670., 1268620., 1276570., 1284520., 1444625.,
      1453970., 1463315., 1472660., 1464085., 1473570., 1483055., 1492540.,
      1483545., 1493170., 1502795., 1512420., 1245670., 1253980., 1262290.,
      1270600., 1016175., 1023150., 1030125., 1037100., 795220.,  800840.,
      806460.,  812080.,  590064.,  594528.,  598992.,  603456.,  720500.,
      726120.,  731740.,  737360.,  843848.,  850640.,  857432.,  864224.,
      959980.,  967960.,  975940.,  983920.,  972412.,  980504.,  988596.,
      996688.,  984844.,  993048.,  1001252., 1009456., 820328.,  827408.,
      834488.,  841568.,  663540.,  669480.,  675420.,  681360.,  514608.,
      519392.,  524176.,  528960.};
  const std::array<int, 4> in_shape = {{1, 10, 9, 2}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x10x9x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1576771., 1582798., 1588825., 1594852., 1614991., 1621214., 1627437.,
      1633660., 1653211., 1659630., 1666049., 1672468., 1920751., 1928542.,
      1936333., 1944124., 1958971., 1966958., 1974945., 1982932., 1997191.,
      2005374., 2013557., 2021740., 2264731., 2274286., 2283841., 2293396.,
      2302951., 2312702., 2322453., 2332204., 2341171., 2351118., 2361065.,
      2371012., 2608711., 2620030., 2631349., 2642668., 2646931., 2658446.,
      2669961., 2681476., 2685151., 2696862., 2708573., 2720284.};
  const std::array<int, 4> in_shape = {{1, 10, 9, 2}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x10x9x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      668000.,  849080.,  1035280., 1226344., 1289288., 1352232., 1169296.,
      982520.,  792160.,  1016280., 1281550., 1550660., 1823290., 1894130.,
      1964970., 1689380., 1411550., 1131800., 1404816., 1761780., 2120280.,
      2479932., 2555532., 2631132., 2252184., 1873620., 1495824., 1817480.,
      2269610., 2719948., 3168046., 3245270., 3322494., 2833516., 2348570.,
      1868104., 2238824., 2786210., 3327772., 3863062., 3940286., 4017510.,
      3417148., 2824850., 2241064., 2660168., 3302810., 3935596., 4558078.,
      4635302., 4712526., 4000780., 3301130., 2614024., 3081512., 3819410.,
      4543420., 5253094., 5330318., 5407542., 4584412., 3777410., 2986984.,
      2391120., 2953380., 3500664., 4032588., 4089372., 4146156., 3501240.,
      2873220., 2262480., 1757240., 2160550., 2548820., 2921730., 2961210.,
      3000690., 2520500., 2056950., 1610360., 1196000., 1461080., 1712080.,
      1948744., 1974056., 1999368., 1666384., 1348760., 1046752.};
  const std::array<int, 4> in_shape = {{1, 10, 9, 4}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x10x9x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3168046., 3245270., 3322494., 3863062., 3940286., 4017510.,
      4558078., 4635302., 4712526., 5253094., 5330318., 5407542.};
  const std::array<int, 4> in_shape = {{1, 10, 9, 4}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x10x9x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1332000.,  1336000.,  1693000.,  1698160.,  2064176.,  2070560.,
      2445016.,  2452688.,  2570456.,  2578576.,  2695896.,  2704464.,
      2331056.,  2338592.,  1958600.,  1965040.,  1579040.,  1584320.,
      2026120.,  2032560.,  2554850.,  2563100.,  3091180.,  3101320.,
      3634470.,  3646580.,  3775590.,  3788260.,  3916710.,  3929940.,
      3367180.,  3378760.,  2813250.,  2823100.,  2255560.,  2263600.,
      2800176.,  2809632.,  3511500.,  3523560.,  4225800.,  4240560.,
      4942308.,  4959864.,  5092836.,  5111064.,  5243364.,  5262264.,
      4487880.,  4504368.,  3733260.,  3747240.,  2980272.,  2991648.,
      3621912.,  3634960.,  4522630.,  4539220.,  5419652.,  5439896.,
      6312082.,  6336092.,  6465746.,  6490540.,  6619410.,  6644988.,
      5644772.,  5667032.,  4678310.,  4697140.,  3720920.,  3736208.,
      4460568.,  4477648.,  5550790.,  5572420.,  6629252.,  6655544.,
      7695058.,  7726124.,  7848722.,  7880572.,  8002386.,  8035020.,
      6805988.,  6834296.,  5625830.,  5649700.,  4462808.,  4482128.,
      5299224.,  5320336.,  6578950.,  6605620.,  7838852.,  7871192.,
      9078034.,  9116156.,  9231698.,  9270604.,  9385362.,  9425052.,
      7967204.,  8001560.,  6573350.,  6602260.,  5204696.,  5228048.,
      6137880.,  6163024.,  7607110.,  7638820.,  9048452.,  9086840.,
      10461010., 10506188., 10614674., 10660636., 10768338., 10815084.,
      9128420.,  9168824.,  7520870.,  7554820.,  5946584.,  5973968.,
      4758960.,  4782240.,  5877420.,  5906760.,  6965832.,  7001328.,
      8023428.,  8065176.,  8136324.,  8178744.,  8249220.,  8292312.,
      6965256.,  7002480.,  5715180.,  5746440.,  4499760.,  4524960.,
      3493640.,  3514480.,  4294850.,  4321100.,  5065900.,  5097640.,
      5806150.,  5843460.,  5884550.,  5922420.,  5962950.,  6001380.,
      5007820.,  5041000.,  4086050.,  4113900.,  3198280.,  3220720.,
      2374176.,  2392000.,  2899720.,  2922160.,  3397040.,  3424160.,
      3865624.,  3897488.,  3915800.,  3948112.,  3965976.,  3998736.,
      3304496.,  3332768.,  2673800.,  2697520.,  2074400.,  2093504.};
  const std::array<int, 4> in_shape = {{1, 10, 9, 4}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x10x9x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6312082.,  6336092.,  6465746.,  6490540.,  6619410.,  6644988.,
      7695058.,  7726124.,  7848722.,  7880572.,  8002386.,  8035020.,
      9078034.,  9116156.,  9231698.,  9270604.,  9385362.,  9425052.,
      10461010., 10506188., 10614674., 10660636., 10768338., 10815084.};
  const std::array<int, 4> in_shape = {{1, 10, 9, 4}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x10x9x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      760480.,   764480.,   768480.,   772480.,   1012328.,  1017488.,
      1022648.,  1027808.,  1268080.,  1274464.,  1280848.,  1287232.,
      1526712.,  1534384.,  1542056.,  1549728.,  1637880.,  1646000.,
      1654120.,  1662240.,  1749048.,  1757616.,  1766184.,  1774752.,
      1560048.,  1567584.,  1575120.,  1582656.,  1380456.,  1386896.,
      1393336.,  1399776.,  1211296.,  1216576.,  1221856.,  1227136.,
      1335272.,  1341712.,  1348152.,  1354592.,  1774474.,  1782724.,
      1790974.,  1799224.,  2212412.,  2222552.,  2232692.,  2242832.,
      2647806.,  2659916.,  2672026.,  2684136.,  2790222.,  2802892.,
      2815562.,  2828232.,  2932638.,  2945868.,  2959098.,  2972328.,
      2596060.,  2607640.,  2619220.,  2630800.,  2275338.,  2285188.,
      2295038.,  2304888.,  1971752.,  1979792.,  1987832.,  1995872.,
      2069360.,  2078816.,  2088272.,  2097728.,  2725500.,  2737560.,
      2749620.,  2761680.,  3371112.,  3385872.,  3400632.,  3415392.,
      4004660.,  4022216.,  4039772.,  4057328.,  4165780.,  4184008.,
      4202236.,  4220464.,  4326900.,  4345800.,  4364700.,  4383600.,
      3800360.,  3816848.,  3833336.,  3849824.,  3300220.,  3314200.,
      3328180.,  3342160.,  2828016.,  2839392.,  2850768.,  2862144.,
      2898232.,  2911280.,  2924328.,  2937376.,  3784766.,  3801356.,
      3817946.,  3834536.,  4647412.,  4667656.,  4687900.,  4708144.,
      5484378.,  5508388.,  5532398.,  5556408.,  5651658.,  5676452.,
      5701246.,  5726040.,  5818938.,  5844516.,  5870094.,  5895672.,
      5076180.,  5098440.,  5120700.,  5142960.,  4374462.,  4393292.,
      4412122.,  4430952.,  3715576.,  3730864.,  3746152.,  3761440.,
      3760504.,  3777584.,  3794664.,  3811744.,  4877582.,  4899212.,
      4920842.,  4942472.,  5954644.,  5980936.,  6007228.,  6033520.,
      6989898.,  7020964.,  7052030.,  7083096.,  7157178.,  7189028.,
      7220878.,  7252728.,  7324458.,  7357092.,  7389726.,  7422360.,
      6360372.,  6388680.,  6416988.,  6445296.,  5453454.,  5477324.,
      5501194.,  5525064.,  4605496.,  4624816.,  4644136.,  4663456.,
      4622776.,  4643888.,  4665000.,  4686112.,  5970398.,  5997068.,
      6023738.,  6050408.,  7261876.,  7294216.,  7326556.,  7358896.,
      8495418.,  8533540.,  8571662.,  8609784.,  8662698.,  8701604.,
      8740510.,  8779416.,  8829978.,  8869668.,  8909358.,  8949048.,
      7644564.,  7678920.,  7713276.,  7747632.,  6532446.,  6561356.,
      6590266.,  6619176.,  5495416.,  5518768.,  5542120.,  5565472.,
      5485048.,  5510192.,  5535336.,  5560480.,  7063214.,  7094924.,
      7126634.,  7158344.,  8569108.,  8607496.,  8645884.,  8684272.,
      10000938., 10046116., 10091294., 10136472., 10168218., 10214180.,
      10260142., 10306104., 10335498., 10382244., 10428990., 10475736.,
      8928756.,  8969160.,  9009564.,  9049968.,  7611438.,  7645388.,
      7679338.,  7713288.,  6385336.,  6412720.,  6440104.,  6467488.,
      4936816.,  4960096.,  4983376.,  5006656.,  6441660.,  6471000.,
      6500340.,  6529680.,  7878120.,  7913616.,  7949112.,  7984608.,
      9244660.,  9286408.,  9328156.,  9369904.,  9387860.,  9430280.,
      9472700.,  9515120.,  9531060.,  9574152.,  9617244.,  9660336.,
      8298152.,  8335376.,  8372600.,  8409824.,  7149500.,  7180760.,
      7212020.,  7243280.,  6086640.,  6111840.,  6137040.,  6162240.,
      4911272.,  4932112.,  4952952.,  4973792.,  6483706.,  6509956.,
      6536206.,  6562456.,  7995740.,  8027480.,  8059220.,  8090960.,
      9446094.,  9483404.,  9520714.,  9558024.,  9577758.,  9615628.,
      9653498.,  9691368.,  9709422.,  9747852.,  9786282.,  9824712.,
      8522236.,  8555416.,  8588596.,  8621776.,  7410042.,  7437892.,
      7465742.,  7493592.,  6374120.,  6396560.,  6419000.,  6441440.,
      4730528.,  4748352.,  4766176.,  4784000.,  5777000.,  5799440.,
      5821880.,  5844320.,  6766960.,  6794080.,  6821200.,  6848320.,
      7699384.,  7731248.,  7763112.,  7794976.,  7799288.,  7831600.,
      7863912.,  7896224.,  7899192.,  7931952.,  7964712.,  7997472.,
      6580720.,  6608992.,  6637264.,  6665536.,  5323880.,  5347600.,
      5371320.,  5395040.,  4129696.,  4148800.,  4167904.,  4187008.};
  const std::array<int, 4> in_shape = {{1, 10, 9, 4}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x10x9x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5484378.,  5508388.,  5532398.,  5556408.,  5651658.,  5676452.,
      5701246.,  5726040.,  5818938.,  5844516.,  5870094.,  5895672.,
      6989898.,  7020964.,  7052030.,  7083096.,  7157178.,  7189028.,
      7220878.,  7252728.,  7324458.,  7357092.,  7389726.,  7422360.,
      8495418.,  8533540.,  8571662.,  8609784.,  8662698.,  8701604.,
      8740510.,  8779416.,  8829978.,  8869668.,  8909358.,  8949048.,
      10000938., 10046116., 10091294., 10136472., 10168218., 10214180.,
      10260142., 10306104., 10335498., 10382244., 10428990., 10475736.};
  const std::array<int, 4> in_shape = {{1, 10, 9, 4}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x10x10x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      11780., 14930., 18154., 21448., 22442., 23436., 24430., 21070., 17660.,
      14204., 17900., 22525., 27200., 31920., 33040., 34160., 35280., 30275.,
      25250., 20210., 24730., 30965., 37209., 43456., 44653., 45850., 47047.,
      40215., 33410., 26638., 31990., 39900., 47761., 55566., 56791., 58016.,
      59241., 50470., 41790., 33208., 39410., 49000., 58471., 67816., 69041.,
      70266., 71491., 60760., 50190., 39788., 46830., 58100., 69181., 80066.,
      81291., 82516., 83741., 71050., 58590., 46368., 54250., 67200., 79891.,
      92316., 93541., 94766., 95991., 81340., 66990., 52948., 42190., 52085.,
      61707., 71050., 71953., 72856., 73759., 62265., 51080., 40210., 31100.,
      38225., 45080., 51660., 52290., 52920., 53550., 44975., 36700., 28730.,
      21260., 25970., 30430., 34636., 35042., 35448., 35854., 29890., 24200.,
      18788.};
  const std::array<int, 4> in_shape = {{1, 10, 10, 1}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x10x10x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      55566., 56791., 58016., 59241., 67816., 69041., 70266., 71491.,
      80066., 81291., 82516., 83741., 92316., 93541., 94766., 95991.};
  const std::array<int, 4> in_shape = {{1, 10, 10, 1}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x10x10x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      23280.,  23560.,  29500.,  29860.,  35864.,  36308.,  42364.,  42896.,
      44324.,  44884.,  46284.,  46872.,  48244.,  48860.,  41600.,  42140.,
      34860.,  35320.,  28032.,  28408.,  35350.,  35800.,  44475.,  45050.,
      53695.,  54400.,  63000.,  63840.,  65205.,  66080.,  67410.,  68320.,
      69615.,  70560.,  59725.,  60550.,  49800.,  50500.,  39850.,  40420.,
      48800.,  49460.,  61090.,  61930.,  73392.,  74418.,  85694.,  86912.,
      88046.,  89306.,  90398.,  91700.,  92750.,  94094.,  79260.,  80430.,
      65830.,  66820.,  52472.,  53276.,  63070.,  63980.,  78645.,  79800.,
      94115.,  95522.,  109466., 111132., 111867., 113582., 114268., 116032.,
      116669., 118482., 99365.,  100940., 82250.,  83580.,  65338.,  66416.,
      77630.,  78820.,  96495.,  98000.,  115115., 116942., 133476., 135632.,
      135877., 138082., 138278., 140532., 140679., 142982., 119525., 121520.,
      98700.,  100380., 78218.,  79576.,  92190.,  93660.,  114345., 116200.,
      136115., 138362., 157486., 160132., 159887., 162582., 162288., 165032.,
      164689., 167482., 139685., 142100., 115150., 117180., 91098.,  92736.,
      106750., 108500., 132195., 134400., 157115., 159782., 181496., 184632.,
      183897., 187082., 186298., 189532., 188699., 191982., 159845., 162680.,
      131600., 133980., 103978., 105896., 82760.,  84380.,  102130., 104170.,
      120948., 123414., 139202., 142100., 140966., 143906., 142730., 145712.,
      144494., 147518., 121920., 124530., 99970.,  102160., 78656.,  80420.,
      60750.,  62200.,  74625.,  76450.,  87955.,  90160.,  100730., 103320.,
      101955., 104580., 103180., 105840., 104405., 107100., 87625.,  89950.,
      71450.,  73400.,  55890.,  57460.,  41280.,  42520.,  50380.,  51940.,
      58976.,  60860.,  67060.,  69272.,  67844.,  70084.,  68628.,  70896.,
      69412.,  71708.,  57800.,  59780.,  46740.,  48400.,  36240.,  37576.};
  const std::array<int, 4> in_shape = {{1, 10, 10, 1}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x10x10x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      109466., 111132., 111867., 113582., 114268., 116032., 116669., 118482.,
      133476., 135632., 135877., 138082., 138278., 140532., 140679., 142982.,
      157486., 160132., 159887., 162582., 162288., 165032., 164689., 167482.,
      181496., 184632., 183897., 187082., 186298., 189532., 188699., 191982.};
  const std::array<int, 4> in_shape = {{1, 10, 10, 1}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x10x10x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      46280.,  46560.,  46840.,  47120.,  58640.,  59000.,  59360.,  59720.,
      71284.,  71728.,  72172.,  72616.,  84196.,  84728.,  85260.,  85792.,
      88088.,  88648.,  89208.,  89768.,  91980.,  92568.,  93156.,  93744.,
      95872.,  96488.,  97104.,  97720.,  82660.,  83200.,  83740.,  84280.,
      69260.,  69720.,  70180.,  70640.,  55688.,  56064.,  56440.,  56816.,
      70250.,  70700.,  71150.,  71600.,  88375.,  88950.,  89525.,  90100.,
      106685., 107390., 108095., 108800., 125160., 126000., 126840., 127680.,
      129535., 130410., 131285., 132160., 133910., 134820., 135730., 136640.,
      138285., 139230., 140175., 141120., 118625., 119450., 120275., 121100.,
      98900.,  99600.,  100300., 101000., 79130.,  79700.,  80270.,  80840.,
      96940.,  97600.,  98260.,  98920.,  121340., 122180., 123020., 123860.,
      145758., 146784., 147810., 148836., 170170., 171388., 172606., 173824.,
      174832., 176092., 177352., 178612., 179494., 180796., 182098., 183400.,
      184156., 185500., 186844., 188188., 157350., 158520., 159690., 160860.,
      130670., 131660., 132650., 133640., 104140., 104944., 105748., 106552.,
      125230., 126140., 127050., 127960., 156135., 157290., 158445., 159600.,
      186823., 188230., 189637., 191044., 217266., 218932., 220598., 222264.,
      222019., 223734., 225449., 227164., 226772., 228536., 230300., 232064.,
      231525., 233338., 235151., 236964., 197155., 198730., 200305., 201880.,
      163170., 164500., 165830., 167160., 129598., 130676., 131754., 132832.,
      154070., 155260., 156450., 157640., 191485., 192990., 194495., 196000.,
      228403., 230230., 232057., 233884., 264796., 266952., 269108., 271264.,
      269549., 271754., 273959., 276164., 274302., 276556., 278810., 281064.,
      279055., 281358., 283661., 285964., 237055., 239050., 241045., 243040.,
      195720., 197400., 199080., 200760., 155078., 156436., 157794., 159152.,
      182910., 184380., 185850., 187320., 226835., 228690., 230545., 232400.,
      269983., 272230., 274477., 276724., 312326., 314972., 317618., 320264.,
      317079., 319774., 322469., 325164., 321832., 324576., 327320., 330064.,
      326585., 329378., 332171., 334964., 276955., 279370., 281785., 284200.,
      228270., 230300., 232330., 234360., 180558., 182196., 183834., 185472.,
      211750., 213500., 215250., 217000., 262185., 264390., 266595., 268800.,
      311563., 314230., 316897., 319564., 359856., 362992., 366128., 369264.,
      364609., 367794., 370979., 374164., 369362., 372596., 375830., 379064.,
      374115., 377398., 380681., 383964., 316855., 319690., 322525., 325360.,
      260820., 263200., 265580., 267960., 206038., 207956., 209874., 211792.,
      163900., 165520., 167140., 168760., 202220., 204260., 206300., 208340.,
      239430., 241896., 244362., 246828., 275506., 278404., 281302., 284200.,
      278992., 281932., 284872., 287812., 282478., 285460., 288442., 291424.,
      285964., 288988., 292012., 295036., 241230., 243840., 246450., 249060.,
      197750., 199940., 202130., 204320., 155548., 157312., 159076., 160840.,
      120050., 121500., 122950., 124400., 147425., 149250., 151075., 152900.,
      173705., 175910., 178115., 180320., 198870., 201460., 204050., 206640.,
      201285., 203910., 206535., 209160., 203700., 206360., 209020., 211680.,
      206115., 208810., 211505., 214200., 172925., 175250., 177575., 179900.,
      140950., 142900., 144850., 146800., 110210., 111780., 113350., 114920.,
      81320.,  82560.,  83800.,  85040.,  99200.,  100760., 102320., 103880.,
      116068., 117952., 119836., 121720., 131908., 134120., 136332., 138544.,
      133448., 135688., 137928., 140168., 134988., 137256., 139524., 141792.,
      136528., 138824., 141120., 143416., 113620., 115600., 117580., 119560.,
      91820.,  93480.,  95140.,  96800.,  71144.,  72480.,  73816.,  75152.};
  const std::array<int, 4> in_shape = {{1, 10, 10, 1}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x10x10x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      217266., 218932., 220598., 222264., 222019., 223734., 225449., 227164.,
      226772., 228536., 230300., 232064., 231525., 233338., 235151., 236964.,
      264796., 266952., 269108., 271264., 269549., 271754., 273959., 276164.,
      274302., 276556., 278810., 281064., 279055., 281358., 283661., 285964.,
      312326., 314972., 317618., 320264., 317079., 319774., 322469., 325164.,
      321832., 324576., 327320., 330064., 326585., 329378., 332171., 334964.,
      359856., 362992., 366128., 369264., 364609., 367794., 370979., 374164.,
      369362., 372596., 375830., 379064., 374115., 377398., 380681., 383964.};
  const std::array<int, 4> in_shape = {{1, 10, 10, 1}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x10x10x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      92512.,  117280., 142640., 168560., 176456., 184352., 192248., 165824.,
      139000., 111808., 140980., 177425., 214270., 251475., 260365., 269255.,
      278145., 238690., 199075., 159340., 195104., 244300., 293568., 342860.,
      352352., 361844., 371336., 317400., 263680., 210224., 252644., 315105.,
      377174., 438795., 448497., 458199., 467901., 398594., 330015., 262220.,
      311444., 387205., 462014., 535815., 545517., 555219., 564921., 480074.,
      396515., 314300., 370244., 459305., 546854., 632835., 642537., 652239.,
      661941., 561554., 463015., 366380., 429044., 531405., 631694., 729855.,
      739557., 749259., 758961., 643034., 529515., 418460., 333200., 411280.,
      487176., 560840., 567980., 575120., 582260., 491424., 403060., 317216.,
      245140., 301225., 355150., 406875., 411845., 416815., 421785., 354130.,
      288875., 226060., 167104., 204040., 238976., 271880., 275072., 278264.,
      281456., 234512., 189760., 147232.};
  const std::array<int, 4> in_shape = {{1, 10, 10, 2}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x10x10x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      438795., 448497., 458199., 467901., 535815., 545517., 555219., 564921.,
      632835., 642537., 652239., 661941., 729855., 739557., 749259., 758961.};
  const std::array<int, 4> in_shape = {{1, 10, 10, 2}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x10x10x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      183920.,  185024.,  233140.,  234560.,  283528.,  285280.,  335020.,
      337120.,  350700.,  352912.,  366380.,  368704.,  382060.,  384496.,
      329512.,  331648.,  276180.,  278000.,  222128.,  223616.,  280180.,
      281960.,  352575.,  354850.,  425750.,  428540.,  499625.,  502950.,
      517265.,  520730.,  534905.,  538510.,  552545.,  556290.,  474110.,
      477380.,  395375.,  398150.,  316420.,  318680.,  387592.,  390208.,
      485270.,  488600.,  583068.,  587136.,  680890.,  685720.,  699706.,
      704704.,  718522.,  723688.,  737338.,  742672.,  630156.,  634800.,
      523430.,  527360.,  417256.,  420448.,  501676.,  505288.,  625625.,
      630210.,  748762.,  754348.,  870975.,  877590.,  890183.,  896994.,
      909391.,  916398.,  928599.,  935802.,  790930.,  797188.,  654745.,
      660030.,  520156.,  524440.,  618156.,  622888.,  768425.,  774410.,
      916762.,  924028.,  1063055., 1071630., 1082263., 1091034., 1101471.,
      1110438., 1120679., 1129842., 952210.,  960148.,  786345.,  793030.,
      623196.,  628600.,  734636.,  740488.,  911225.,  918610.,  1084762.,
      1093708., 1255135., 1265670., 1274343., 1285074., 1293551., 1304478.,
      1312759., 1323882., 1113490., 1123108., 917945.,  926030.,  726236.,
      732760.,  851116.,  858088.,  1054025., 1062810., 1252762., 1263388.,
      1447215., 1459710., 1466423., 1479114., 1485631., 1498518., 1504839.,
      1517922., 1274770., 1286068., 1049545., 1059030., 829276.,  836920.,
      659944.,  666400.,  814430.,  822560.,  964524.,  974352.,  1110130.,
      1121680., 1124242., 1135960., 1138354., 1150240., 1152466., 1164520.,
      972444.,  982848.,  797390.,  806120.,  627400.,  634432.,  484500.,
      490280.,  595175.,  602450.,  701510.,  710300.,  803425.,  813750.,
      813225.,  823690.,  823025.,  833630.,  832825.,  843570.,  698990.,
      708260.,  569975.,  577750.,  445860.,  452120.,  329264.,  334208.,
      401860.,  408080.,  470440.,  477952.,  534940.,  543760.,  541212.,
      550144.,  547484.,  556528.,  553756.,  562912.,  461128.,  469024.,
      372900.,  379520.,  289136.,  294464.};
  const std::array<int, 4> in_shape = {{1, 10, 10, 2}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x10x10x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      870975.,  877590.,  890183.,  896994.,  909391.,  916398.,  928599.,
      935802.,  1063055., 1071630., 1082263., 1091034., 1101471., 1110438.,
      1120679., 1129842., 1255135., 1265670., 1274343., 1285074., 1293551.,
      1304478., 1312759., 1323882., 1447215., 1459710., 1466423., 1479114.,
      1485631., 1498518., 1504839., 1517922.};
  const std::array<int, 4> in_shape = {{1, 10, 10, 2}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x10x10x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      366736.,  367840.,  368944.,  370048.,  464860.,  466280.,  467700.,
      469120.,  565304.,  567056.,  568808.,  570560.,  667940.,  670040.,
      672140.,  674240.,  699188.,  701400.,  703612.,  705824.,  730436.,
      732760.,  735084.,  737408.,  761684.,  764120.,  766556.,  768992.,
      656888.,  659024.,  661160.,  663296.,  550540.,  552360.,  554180.,
      556000.,  442768.,  444256.,  445744.,  447232.,  558580.,  560360.,
      562140.,  563920.,  702875.,  705150.,  707425.,  709700.,  848710.,
      851500.,  854290.,  857080.,  995925.,  999250.,  1002575., 1005900.,
      1031065., 1034530., 1037995., 1041460., 1066205., 1069810., 1073415.,
      1077020., 1101345., 1105090., 1108835., 1112580., 944950.,  948220.,
      951490.,  954760.,  787975.,  790750.,  793525.,  796300.,  630580.,
      632840.,  635100.,  637360.,  772568.,  775184.,  777800.,  780416.,
      967210.,  970540.,  973870.,  977200.,  1162068., 1166136., 1170204.,
      1174272., 1356950., 1361780., 1366610., 1371440., 1394414., 1399412.,
      1404410., 1409408., 1431878., 1437044., 1442210., 1447376., 1469342.,
      1474676., 1480010., 1485344., 1255668., 1260312., 1264956., 1269600.,
      1042930., 1046860., 1050790., 1054720., 831320.,  834512.,  837704.,
      840896.,  999740.,  1003352., 1006964., 1010576., 1246665., 1251250.,
      1255835., 1260420., 1491938., 1497524., 1503110., 1508696., 1735335.,
      1741950., 1748565., 1755180., 1773555., 1780366., 1787177., 1793988.,
      1811775., 1818782., 1825789., 1832796., 1849995., 1857198., 1864401.,
      1871604., 1575602., 1581860., 1588118., 1594376., 1304205., 1309490.,
      1314775., 1320060., 1036028., 1040312., 1044596., 1048880., 1231580.,
      1236312., 1241044., 1245776., 1530865., 1536850., 1542835., 1548820.,
      1826258., 1833524., 1840790., 1848056., 2117535., 2126110., 2134685.,
      2143260., 2155755., 2164526., 2173297., 2182068., 2193975., 2202942.,
      2211909., 2220876., 2232195., 2241358., 2250521., 2259684., 1896482.,
      1904420., 1912358., 1920296., 1566005., 1572690., 1579375., 1586060.,
      1240988., 1246392., 1251796., 1257200., 1463420., 1469272., 1475124.,
      1480976., 1815065., 1822450., 1829835., 1837220., 2160578., 2169524.,
      2178470., 2187416., 2499735., 2510270., 2520805., 2531340., 2537955.,
      2548686., 2559417., 2570148., 2576175., 2587102., 2598029., 2608956.,
      2614395., 2625518., 2636641., 2647764., 2217362., 2226980., 2236598.,
      2246216., 1827805., 1835890., 1843975., 1852060., 1445948., 1452472.,
      1458996., 1465520., 1695260., 1702232., 1709204., 1716176., 2099265.,
      2108050., 2116835., 2125620., 2494898., 2505524., 2516150., 2526776.,
      2881935., 2894430., 2906925., 2919420., 2920155., 2932846., 2945537.,
      2958228., 2958375., 2971262., 2984149., 2997036., 2996595., 3009678.,
      3022761., 3035844., 2538242., 2549540., 2560838., 2572136., 2089605.,
      2099090., 2108575., 2118060., 1650908., 1658552., 1666196., 1673840.,
      1313432., 1319888., 1326344., 1332800., 1620730., 1628860., 1636990.,
      1645120., 1919220., 1929048., 1938876., 1948704., 2208710., 2220260.,
      2231810., 2243360., 2236766., 2248484., 2260202., 2271920., 2264822.,
      2276708., 2288594., 2300480., 2292878., 2304932., 2316986., 2329040.,
      1934484., 1944888., 1955292., 1965696., 1586050., 1594780., 1603510.,
      1612240., 1247768., 1254800., 1261832., 1268864., 963220.,  969000.,
      974780.,  980560.,  1183075., 1190350., 1197625., 1204900., 1394230.,
      1403020., 1411810., 1420600., 1596525., 1606850., 1617175., 1627500.,
      1615985., 1626450., 1636915., 1647380., 1635445., 1646050., 1656655.,
      1667260., 1654905., 1665650., 1676395., 1687140., 1388710., 1397980.,
      1407250., 1416520., 1132175., 1139950., 1147725., 1155500., 885460.,
      891720.,  897980.,  904240.,  653584.,  658528.,  663472.,  668416.,
      797500.,  803720.,  809940.,  816160.,  933368.,  940880.,  948392.,
      955904.,  1061060., 1069880., 1078700., 1087520., 1073492., 1082424.,
      1091356., 1100288., 1085924., 1094968., 1104012., 1113056., 1098356.,
      1107512., 1116668., 1125824., 914360.,  922256.,  930152.,  938048.,
      739180.,  745800.,  752420.,  759040.,  572944.,  578272.,  583600.,
      588928.};
  const std::array<int, 4> in_shape = {{1, 10, 10, 2}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x10x10x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1735335., 1741950., 1748565., 1755180., 1773555., 1780366., 1787177.,
      1793988., 1811775., 1818782., 1825789., 1832796., 1849995., 1857198.,
      1864401., 1871604., 2117535., 2126110., 2134685., 2143260., 2155755.,
      2164526., 2173297., 2182068., 2193975., 2202942., 2211909., 2220876.,
      2232195., 2241358., 2250521., 2259684., 2499735., 2510270., 2520805.,
      2531340., 2537955., 2548686., 2559417., 2570148., 2576175., 2587102.,
      2598029., 2608956., 2614395., 2625518., 2636641., 2647764., 2881935.,
      2894430., 2906925., 2919420., 2920155., 2932846., 2945537., 2958228.,
      2958375., 2971262., 2984149., 2997036., 2996595., 3009678., 3022761.,
      3035844.};
  const std::array<int, 4> in_shape = {{1, 10, 10, 2}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x10x10x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      733216.,  929640.,  1130800., 1336440., 1399384., 1462328., 1525272.,
      1315696., 1102920., 887200.,  1119000., 1408350., 1700900., 1996330.,
      2067170., 2138010., 2208850., 1895540., 1580950., 1265400., 1549936.,
      1940780., 2332200., 2723812., 2799412., 2875012., 2950612., 2521992.,
      2095100., 1670320., 2008104., 2504530., 2997820., 3487526., 3564750.,
      3641974., 3719198., 3168172., 2622970., 2084040., 2476264., 3078530.,
      3673180., 4259766., 4336990., 4414214., 4491438., 3816652., 3152170.,
      2498440., 2944424., 3652530., 4348540., 5032006., 5109230., 5186454.,
      5263678., 4465132., 3681370., 2912840., 3412584., 4226530., 5023900.,
      5804246., 5881470., 5958694., 6035918., 5113612., 4210570., 3327240.,
      2648368., 3268700., 3871560., 4456564., 4513348., 4570132., 4626916.,
      3904680., 3202220., 2519920., 1946520., 2391550., 2819300., 3229450.,
      3268930., 3308410., 3347890., 2810420., 2292150., 1793400., 1324960.,
      1617480., 1894000., 2154264., 2179576., 2204888., 2230200., 1857712.,
      1502760., 1165600.};
  const std::array<int, 4> in_shape = {{1, 10, 10, 4}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x10x10x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3487526., 3564750., 3641974., 3719198., 4259766., 4336990.,
      4414214., 4491438., 5032006., 5109230., 5186454., 5263678.,
      5804246., 5881470., 5958694., 6035918.};
  const std::array<int, 4> in_shape = {{1, 10, 10, 4}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x10x10x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1462048.,  1466432.,  1853640.,  1859280.,  2254640.,  2261600.,
      2664536.,  2672880.,  2789976.,  2798768.,  2915416.,  2924656.,
      3040856.,  3050544.,  2622896.,  2631392.,  2198600.,  2205840.,
      1768480.,  1774400.,  2230920.,  2238000.,  2807650.,  2816700.,
      3390700.,  3401800.,  3979430.,  3992660.,  4120550.,  4134340.,
      4261670.,  4276020.,  4402790.,  4417700.,  3778060.,  3791080.,
      3150850.,  3161900.,  2521800.,  2530800.,  3089456.,  3099872.,
      3868300.,  3881560.,  4648200.,  4664400.,  5428388.,  5447624.,
      5578916.,  5598824.,  5729444.,  5750024.,  5879972.,  5901224.,
      5025480.,  5043984.,  4174540.,  4190200.,  3327920.,  3340640.,
      4001816.,  4016208.,  4990790.,  5009060.,  5973380.,  5995640.,
      6948690.,  6975052.,  7102354.,  7129500.,  7256018.,  7283948.,
      7409682.,  7438396.,  6311396.,  6336344.,  5224870.,  5245940.,
      4151000.,  4168080.,  4933656.,  4952528.,  6133190.,  6157060.,
      7317380.,  7346360.,  8485330.,  8519532.,  8638994.,  8673980.,
      8792658.,  8828428.,  8946322.,  8982876.,  7601636.,  7633304.,
      6277670.,  6304340.,  4975320.,  4996880.,  5865496.,  5888848.,
      7275590.,  7305060.,  8661380.,  8697080.,  10021970., 10064012.,
      10175634., 10218460., 10329298., 10372908., 10482962., 10527356.,
      8891876.,  8930264.,  7330470.,  7362740.,  5799640.,  5825680.,
      6797336.,  6825168.,  8417990.,  8453060.,  10005380., 10047800.,
      11558610., 11608492., 11712274., 11762940., 11865938., 11917388.,
      12019602., 12071836., 10182116., 10227224., 8383270.,  8421140.,
      6623960.,  6654480.,  5270960.,  5296736.,  6504940.,  6537400.,
      7703880.,  7743120.,  8867012.,  8913128.,  8979908.,  9026696.,
      9092804.,  9140264.,  9205700.,  9253832.,  7767816.,  7809360.,
      6369580.,  6404440.,  5011760.,  5039840.,  3869960.,  3893040.,
      4754050.,  4783100.,  5603500.,  5638600.,  6417670.,  6458900.,
      6496070.,  6537860.,  6574470.,  6616820.,  6652870.,  6695780.,
      5583820.,  5620840.,  4553250.,  4584300.,  3561800.,  3586800.,
      2630176.,  2649920.,  3210120.,  3234960.,  3758000.,  3788000.,
      4273304.,  4308528.,  4323480.,  4359152.,  4373656.,  4409776.,
      4423832.,  4460400.,  3683888.,  3715424.,  2979080.,  3005520.,
      2309920.,  2331200.};
  const std::array<int, 4> in_shape = {{1, 10, 10, 4}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x10x10x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6948690.,  6975052.,  7102354.,  7129500.,  7256018.,  7283948.,
      7409682.,  7438396.,  8485330.,  8519532.,  8638994.,  8673980.,
      8792658.,  8828428.,  8946322.,  8982876.,  10021970., 10064012.,
      10175634., 10218460., 10329298., 10372908., 10482962., 10527356.,
      11558610., 11608492., 11712274., 11762940., 11865938., 11917388.,
      12019602., 12071836.};
  const std::array<int, 4> in_shape = {{1, 10, 10, 4}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME1x10x10x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      831776.,   836160.,   840544.,   844928.,   1103752.,  1109392.,
      1115032.,  1120672.,  1378096.,  1385056.,  1392016.,  1398976.,
      1653784.,  1662128.,  1670472.,  1678816.,  1764952.,  1773744.,
      1782536.,  1791328.,  1876120.,  1885360.,  1894600.,  1903840.,
      1987288.,  1996976.,  2006664.,  2016352.,  1765936.,  1774432.,
      1782928.,  1791424.,  1556552.,  1563792.,  1571032.,  1578272.,
      1360160.,  1366080.,  1372000.,  1377920.,  1465704.,  1472784.,
      1479864.,  1486944.,  1943402.,  1952452.,  1961502.,  1970552.,
      2417276.,  2428376.,  2439476.,  2450576.,  2886046.,  2899276.,
      2912506.,  2925736.,  3028462.,  3042252.,  3056042.,  3069832.,
      3170878.,  3185228.,  3199578.,  3213928.,  3313294.,  3328204.,
      3343114.,  3358024.,  2924860.,  2937880.,  2950900.,  2963920.,
      2556122.,  2567172.,  2578222.,  2589272.,  2208360.,  2217360.,
      2226360.,  2235360.,  2278320.,  2288736.,  2299152.,  2309568.,
      2995532.,  3008792.,  3022052.,  3035312.,  3698376.,  3714576.,
      3730776.,  3746976.,  4385316.,  4404552.,  4423788.,  4443024.,
      4546436.,  4566344.,  4586252.,  4606160.,  4707556.,  4728136.,
      4748716.,  4769296.,  4868676.,  4889928.,  4911180.,  4932432.,
      4267336.,  4285840.,  4304344.,  4322848.,  3697772.,  3713432.,
      3729092.,  3744752.,  3161520.,  3174240.,  3186960.,  3199680.,
      3197944.,  3212336.,  3226728.,  3241120.,  4170542.,  4188812.,
      4207082.,  4225352.,  5113876.,  5136136.,  5158396.,  5180656.,
      6026154.,  6052516.,  6078878.,  6105240.,  6193434.,  6220580.,
      6247726.,  6274872.,  6360714.,  6388644.,  6416574.,  6444504.,
      6527994.,  6556708.,  6585422.,  6614136.,  5685844.,  5710792.,
      5735740.,  5760688.,  4891902.,  4912972.,  4934042.,  4955112.,
      4147960.,  4165040.,  4182120.,  4199200.,  4156024.,  4174896.,
      4193768.,  4212640.,  5384782.,  5408652.,  5432522.,  5456392.,
      6566356.,  6595336.,  6624316.,  6653296.,  7698954.,  7733156.,
      7767358.,  7801560.,  7866234.,  7901220.,  7936206.,  7971192.,
      8033514.,  8069284.,  8105054.,  8140824.,  8200794.,  8237348.,
      8273902.,  8310456.,  7112724.,  7144392.,  7176060.,  7207728.,
      6090782.,  6117452.,  6144122.,  6170792.,  5136760.,  5158320.,
      5179880.,  5201440.,  5114104.,  5137456.,  5160808.,  5184160.,
      6599022.,  6628492.,  6657962.,  6687432.,  8018836.,  8054536.,
      8090236.,  8125936.,  9371754.,  9413796.,  9455838.,  9497880.,
      9539034.,  9581860.,  9624686.,  9667512.,  9706314.,  9749924.,
      9793534.,  9837144.,  9873594.,  9917988.,  9962382.,  10006776.,
      8539604.,  8577992.,  8616380.,  8654768.,  7289662.,  7321932.,
      7354202.,  7386472.,  6125560.,  6151600.,  6177640.,  6203680.,
      6072184.,  6100016.,  6127848.,  6155680.,  7813262.,  7848332.,
      7883402.,  7918472.,  9471316.,  9513736.,  9556156.,  9598576.,
      11044554., 11094436., 11144318., 11194200., 11211834., 11262500.,
      11313166., 11363832., 11379114., 11430564., 11482014., 11533464.,
      11546394., 11598628., 11650862., 11703096., 9966484.,  10011592.,
      10056700., 10101808., 8488542.,  8526412.,  8564282.,  8602152.,
      7114360.,  7144880.,  7175400.,  7205920.,  5466800.,  5492576.,
      5518352.,  5544128.,  7128332.,  7160792.,  7193252.,  7225712.,
      8711496.,  8750736.,  8789976.,  8829216.,  10214756., 10260872.,
      10306988., 10353104., 10357956., 10404744., 10451532., 10498320.,
      10501156., 10548616., 10596076., 10643536., 10644356., 10692488.,
      10740620., 10788752., 9259976.,  9301520.,  9343064.,  9384608.,
      7971372.,  8006232.,  8041092.,  8075952.,  6780080.,  6808160.,
      6836240.,  6864320.,  5440488.,  5463568.,  5486648.,  5509728.,
      7178122.,  7207172.,  7236222.,  7265272.,  8846396.,  8881496.,
      8916596.,  8951696.,  10444030., 10485260., 10526490., 10567720.,
      10575694., 10617484., 10659274., 10701064., 10707358., 10749708.,
      10792058., 10834408., 10839022., 10881932., 10924842., 10967752.,
      9506556.,  9543576.,  9580596.,  9617616.,  8259322.,  8290372.,
      8321422.,  8352472.,  7098600.,  7123600.,  7148600.,  7173600.,
      5240608.,  5260352.,  5280096.,  5299840.,  6395400.,  6420240.,
      6445080.,  6469920.,  7486000.,  7516000.,  7546000.,  7576000.,
      8511384.,  8546608.,  8581832.,  8617056.,  8611288.,  8646960.,
      8682632.,  8718304.,  8711192.,  8747312.,  8783432.,  8819552.,
      8811096.,  8847664.,  8884232.,  8920800.,  7336240.,  7367776.,
      7399312.,  7430848.,  5931720.,  5958160.,  5984600.,  6011040.,
      4598560.,  4619840.,  4641120.,  4662400.};
  const std::array<int, 4> in_shape = {{1, 10, 10, 4}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID1x10x10x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6026154.,  6052516.,  6078878.,  6105240.,  6193434.,  6220580.,
      6247726.,  6274872.,  6360714.,  6388644.,  6416574.,  6444504.,
      6527994.,  6556708.,  6585422.,  6614136.,  7698954.,  7733156.,
      7767358.,  7801560.,  7866234.,  7901220.,  7936206.,  7971192.,
      8033514.,  8069284.,  8105054.,  8140824.,  8200794.,  8237348.,
      8273902.,  8310456.,  9371754.,  9413796.,  9455838.,  9497880.,
      9539034.,  9581860.,  9624686.,  9667512.,  9706314.,  9749924.,
      9793534.,  9837144.,  9873594.,  9917988.,  9962382.,  10006776.,
      11044554., 11094436., 11144318., 11194200., 11211834., 11262500.,
      11313166., 11363832., 11379114., 11430564., 11482014., 11533464.,
      11546394., 11598628., 11650862., 11703096.};
  const std::array<int, 4> in_shape = {{1, 10, 10, 4}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x8x8x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      9724.,   12390.,  15142.,  17976.,  18970.,  16450.,  13860.,  11204.,
      14660.,  18525.,  22460.,  26460.,  27580.,  23765.,  19900.,  15990.,
      20150.,  25315.,  30519.,  35756.,  36953.,  31689.,  26410.,  21122.,
      25970.,  32480.,  38983.,  45472.,  46697.,  39886.,  33110.,  26376.,
      31906.,  39760.,  47551.,  55272.,  56497.,  48118.,  39830.,  31640.,
      25202.,  31285.,  37269.,  43148.,  44051.,  37359.,  30790.,  24350.,
      18840.,  23275.,  27590.,  31780.,  32410.,  27335.,  22400.,  17610.,
      13044.,  16010.,  18850.,  21560.,  21966.,  18382.,  14940.,  11644.,
      47612.,  59110.,  70438.,  81592.,  82586.,  70210.,  58020.,  46020.,
      57540.,  71325.,  84860.,  98140.,  99260.,  84245.,  69500.,  55030.,
      66230.,  81955.,  97335.,  112364., 113561., 96201.,  79210.,  62594.,
      73458.,  90720.,  107527., 123872., 125097., 105742., 86870.,  68488.,
      79394.,  98000.,  116095., 133672., 134897., 113974., 93590.,  73752.,
      60530.,  74485.,  87957.,  100940., 101843., 85743.,  70150.,  55070.,
      43800.,  53675.,  63110.,  72100.,  72730.,  60935.,  49600.,  38730.,
      29428.,  35850.,  41890.,  47544.,  47950.,  39886.,  32220.,  24956.,
      85500.,  105830., 125734., 145208., 146202., 123970., 102180., 80836.,
      100420., 124125., 147260., 169820., 170940., 144725., 119100., 94070.,
      112310., 138595., 164151., 188972., 190169., 160713., 132010., 104066.,
      120946., 148960., 176071., 202272., 203497., 171598., 140630., 110600.,
      126882., 156240., 184639., 212072., 213297., 179830., 147350., 115864.,
      95858.,  117685., 138645., 158732., 159635., 134127., 109510., 85790.,
      68760.,  84075.,  98630.,  112420., 113050., 94535.,  76800.,  59850.,
      45812.,  55690.,  64930.,  73528.,  73934.,  61390.,  49500.,  38268.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 1}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x8x8x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {45472.,  46697.,  55272.,  56497.,
                                         123872., 125097., 133672., 134897.,
                                         202272., 203497., 212072., 213297.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 1}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x8x8x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      19216.,  19448.,  24480.,  24780.,  29912.,  30284.,  35504.,  35952.,
      37464.,  37940.,  32480.,  32900.,  27360.,  27720.,  22112.,  22408.,
      28950.,  29320.,  36575.,  37050.,  44335.,  44920.,  52220.,  52920.,
      54425.,  55160.,  46885.,  47530.,  39250.,  39800.,  31530.,  31980.,
      39760.,  40300.,  49940.,  50630.,  60192.,  61038.,  70504.,  71512.,
      72856.,  73906.,  62460.,  63378.,  52040.,  52820.,  41608.,  42244.,
      51198.,  51940.,  64015.,  64960.,  76811.,  77966.,  89572.,  90944.,
      91973.,  93394.,  78533.,  79772.,  65170.,  66220.,  51898.,  52752.,
      62846.,  63812.,  78295.,  79520.,  93611.,  95102.,  108780., 110544.,
      111181., 112994., 94661.,  96236.,  78330.,  79660.,  62202.,  63280.,
      49480.,  50404.,  61400.,  62570.,  73116.,  74538.,  84616.,  86296.,
      86380.,  88102.,  73224.,  74718.,  60320.,  61580.,  47680.,  48700.,
      36830.,  37680.,  45475.,  46550.,  53875.,  55180.,  62020.,  63560.,
      63245.,  64820.,  53305.,  54670.,  43650.,  44800.,  34290.,  35220.,
      25344.,  26088.,  31080.,  32020.,  36560.,  37700.,  41776.,  43120.,
      42560.,  43932.,  35576.,  36764.,  28880.,  29880.,  22480.,  23288.,
      93968.,  95224.,  116640., 118220., 138968., 140876., 160944., 163184.,
      162904., 165172., 138464., 140420., 114400., 116040., 90720.,  92040.,
      113430., 115080., 140575., 142650., 167215., 169720., 193340., 196280.,
      195545., 198520., 165925., 168490., 136850., 139000., 108330., 110060.,
      130384., 132460., 161300., 163910., 191520., 194670., 221032., 224728.,
      223384., 227122., 189180., 192402., 155720., 158420., 123016., 125188.,
      144382., 146916., 178255., 181440., 211211., 215054., 243236., 247744.,
      245637., 250194., 207557., 211484., 170450., 173740., 134330., 136976.,
      156030., 158788., 192535., 196000., 228011., 232190., 262444., 267344.,
      264845., 269794., 223685., 227948., 183610., 187180., 144634., 147504.,
      118600., 121060., 145880., 148970., 172188., 175914., 197512., 201880.,
      199276., 203686., 167688., 171486., 137120., 140300., 107584., 110140.,
      85470.,  87600.,  104675., 107350., 122995., 126220., 140420., 144200.,
      141645., 145460., 118585., 121870., 96450.,  99200.,  75250.,  77460.,
      57088.,  58856.,  69480.,  71700.,  81104.,  83780.,  91952.,  95088.,
      92736.,  95900.,  77048.,  79772.,  62160.,  64440.,  48080.,  49912.,
      168720., 171000., 208800., 211660., 248024., 251468., 286384., 290416.,
      288344., 292404., 244448., 247940., 201440., 204360., 159328., 161672.,
      197910., 200840., 244575., 248250., 290095., 294520., 334460., 339640.,
      336665., 341880., 284965., 289450., 234450., 238200., 185130., 188140.,
      221008., 224620., 272660., 277190., 322848., 328302., 371560., 377944.,
      373912., 380338., 315900., 321426., 259400., 264020., 204424., 208132.,
      237566., 241892., 292495., 297920., 345611., 352142., 396900., 404544.,
      399301., 406994., 336581., 343196., 275730., 281260., 216762., 221200.,
      249214., 253764., 306775., 312480., 362411., 369278., 416108., 424144.,
      418509., 426594., 352709., 359660., 288890., 294700., 227066., 231728.,
      187720., 191716., 230360., 235370., 271260., 277290., 310408., 317464.,
      312172., 319270., 262152., 268254., 213920., 219020., 167488., 171580.,
      134110., 137520., 163875., 168150., 192115., 197260., 218820., 224840.,
      220045., 226100., 183865., 189070., 149250., 153600., 116210., 119700.,
      88832.,  91624.,  107880., 111380., 125648., 129860., 142128., 147056.,
      142912., 147868., 118520., 122780., 95440.,  99000.,  73680.,  76536.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 1}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x8x8x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      89572.,  90944.,  91973.,  93394.,  108780., 110544., 111181., 112994.,
      243236., 247744., 245637., 250194., 262444., 267344., 264845., 269794.,
      396900., 404544., 399301., 406994., 416108., 424144., 418509., 426594.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 1}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x8x8x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      38200.,  38432.,  38664.,  38896.,  48660.,  48960.,  49260.,  49560.,
      59452.,  59824.,  60196.,  60568.,  70560.,  71008.,  71456.,  71904.,
      74452.,  74928.,  75404.,  75880.,  64540.,  64960.,  65380.,  65800.,
      54360.,  54720.,  55080.,  55440.,  43928.,  44224.,  44520.,  44816.,
      57530.,  57900.,  58270.,  58640.,  72675.,  73150.,  73625.,  74100.,
      88085.,  88670.,  89255.,  89840.,  103740., 104440., 105140., 105840.,
      108115., 108850., 109585., 110320., 93125.,  93770.,  94415.,  95060.,
      77950.,  78500.,  79050.,  79600.,  62610.,  63060.,  63510.,  63960.,
      78980.,  79520.,  80060.,  80600.,  99190.,  99880.,  100570., 101260.,
      119538., 120384., 121230., 122076., 140000., 141008., 142016., 143024.,
      144662., 145712., 146762., 147812., 124002., 124920., 125838., 126756.,
      103300., 104080., 104860., 105640., 82580.,  83216.,  83852.,  84488.,
      101654., 102396., 103138., 103880., 127085., 128030., 128975., 129920.,
      152467., 153622., 154777., 155932., 177772., 179144., 180516., 181888.,
      182525., 183946., 185367., 186788., 155827., 157066., 158305., 159544.,
      129290., 130340., 131390., 132440., 102942., 103796., 104650., 105504.,
      124726., 125692., 126658., 127624., 155365., 156590., 157815., 159040.,
      185731., 187222., 188713., 190204., 215796., 217560., 219324., 221088.,
      220549., 222362., 224175., 225988., 187747., 189322., 190897., 192472.,
      155330., 156660., 157990., 159320., 123326., 124404., 125482., 126560.,
      98036.,  98960.,  99884.,  100808., 121630., 122800., 123970., 125140.,
      144810., 146232., 147654., 149076., 167552., 169232., 170912., 172592.,
      171038., 172760., 174482., 176204., 144954., 146448., 147942., 149436.,
      119380., 120640., 121900., 123160., 94340.,  95360.,  96380.,  97400.,
      72810.,  73660.,  74510.,  75360.,  89875.,  90950.,  92025.,  93100.,
      106445., 107750., 109055., 110360., 122500., 124040., 125580., 127120.,
      124915., 126490., 128065., 129640., 105245., 106610., 107975., 109340.,
      86150.,  87300.,  88450.,  89600.,  67650.,  68580.,  69510.,  70440.,
      49944.,  50688.,  51432.,  52176.,  61220.,  62160.,  63100.,  64040.,
      71980.,  73120.,  74260.,  75400.,  82208.,  83552.,  84896.,  86240.,
      83748.,  85120.,  86492.,  87864.,  69964.,  71152.,  72340.,  73528.,
      56760.,  57760.,  58760.,  59760.,  44152.,  44960.,  45768.,  46576.,
      186680., 187936., 189192., 190448., 231700., 233280., 234860., 236440.,
      276028., 277936., 279844., 281752., 319648., 321888., 324128., 326368.,
      323540., 325808., 328076., 330344., 274972., 276928., 278884., 280840.,
      227160., 228800., 230440., 232080., 180120., 181440., 182760., 184080.,
      225210., 226860., 228510., 230160., 279075., 281150., 283225., 285300.,
      331925., 334430., 336935., 339440., 383740., 386680., 389620., 392560.,
      388115., 391090., 394065., 397040., 329285., 331850., 334415., 336980.,
      271550., 273700., 275850., 278000., 214930., 216660., 218390., 220120.,
      258692., 260768., 262844., 264920., 319990., 322600., 325210., 327820.,
      379890., 383040., 386190., 389340., 438368., 442064., 445760., 449456.,
      443030., 446768., 450506., 454244., 375138., 378360., 381582., 384804.,
      308740., 311440., 314140., 316840., 243860., 246032., 248204., 250376.,
      286230., 288764., 291298., 293832., 353325., 356510., 359695., 362880.,
      418579., 422422., 426265., 430108., 481964., 486472., 490980., 495488.,
      486717., 491274., 495831., 500388., 411187., 415114., 419041., 422968.,
      337610., 340900., 344190., 347480., 266014., 268660., 271306., 273952.,
      309302., 312060., 314818., 317576., 381605., 385070., 388535., 392000.,
      451843., 456022., 460201., 464380., 519988., 524888., 529788., 534688.,
      524741., 529690., 534639., 539588., 443107., 447370., 451633., 455896.,
      363650., 367220., 370790., 374360., 286398., 289268., 292138., 295008.,
      234740., 237200., 239660., 242120., 288670., 291760., 294850., 297940.,
      340650., 344376., 348102., 351828., 390656., 395024., 399392., 403760.,
      394142., 398552., 402962., 407372., 331578., 335376., 339174., 342972.,
      271060., 274240., 277420., 280600., 212612., 215168., 217724., 220280.,
      168810., 170940., 173070., 175200., 206675., 209350., 212025., 214700.,
      242765., 245990., 249215., 252440., 277060., 280840., 284620., 288400.,
      279475., 283290., 287105., 290920., 233885., 237170., 240455., 243740.,
      190150., 192900., 195650., 198400., 148290., 150500., 152710., 154920.,
      112408., 114176., 115944., 117712., 136740., 138960., 141180., 143400.,
      159532., 162208., 164884., 167560., 180768., 183904., 187040., 190176.,
      182308., 185472., 188636., 191800., 151372., 154096., 156820., 159544.,
      122040., 124320., 126600., 128880., 94328.,  96160.,  97992.,  99824.,
      335160., 337440., 339720., 342000., 414740., 417600., 420460., 423320.,
      492604., 496048., 499492., 502936., 568736., 572768., 576800., 580832.,
      572628., 576688., 580748., 584808., 485404., 488896., 492388., 495880.,
      399960., 402880., 405800., 408720., 316312., 318656., 321000., 323344.,
      392890., 395820., 398750., 401680., 485475., 489150., 492825., 496500.,
      575765., 580190., 584615., 589040., 663740., 668920., 674100., 679280.,
      668115., 673330., 678545., 683760., 565445., 569930., 574415., 578900.,
      465150., 468900., 472650., 476400., 367250., 370260., 373270., 376280.,
      438404., 442016., 445628., 449240., 540790., 545320., 549850., 554380.,
      640242., 645696., 651150., 656604., 736736., 743120., 749504., 755888.,
      741398., 747824., 754250., 760676., 626274., 631800., 637326., 642852.,
      514180., 518800., 523420., 528040., 405140., 408848., 412556., 416264.,
      470806., 475132., 479458., 483784., 579565., 584990., 590415., 595840.,
      684691., 691222., 697753., 704284., 786156., 793800., 801444., 809088.,
      790909., 798602., 806295., 813988., 666547., 673162., 679777., 686392.,
      545930., 551460., 556990., 562520., 429086., 433524., 437962., 442400.,
      493878., 498428., 502978., 507528., 607845., 613550., 619255., 624960.,
      717955., 724822., 731689., 738556., 824180., 832216., 840252., 848288.,
      828933., 837018., 845103., 853188., 698467., 705418., 712369., 719320.,
      571970., 577780., 583590., 589400., 449470., 454132., 458794., 463456.,
      371444., 375440., 379436., 383432., 455710., 460720., 465730., 470740.,
      536490., 542520., 548550., 554580., 613760., 620816., 627872., 634928.,
      617246., 624344., 631442., 638540., 518202., 524304., 530406., 536508.,
      422740., 427840., 432940., 438040., 330884., 334976., 339068., 343160.,
      264810., 268220., 271630., 275040., 323475., 327750., 332025., 336300.,
      379085., 384230., 389375., 394520., 431620., 437640., 443660., 449680.,
      434035., 440090., 446145., 452200., 362525., 367730., 372935., 378140.,
      294150., 298500., 302850., 307200., 228930., 232420., 235910., 239400.,
      174872., 177664., 180456., 183248., 212260., 215760., 219260., 222760.,
      247084., 251296., 255508., 259720., 279328., 284256., 289184., 294112.,
      280868., 285824., 290780., 295736., 232780., 237040., 241300., 245560.,
      187320., 190880., 194440., 198000., 144504., 147360., 150216., 153072.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 1}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x8x8x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      177772., 179144., 180516., 181888., 182525., 183946., 185367., 186788.,
      215796., 217560., 219324., 221088., 220549., 222362., 224175., 225988.,
      481964., 486472., 490980., 495488., 486717., 491274., 495831., 500388.,
      519988., 524888., 529788., 534688., 524741., 529690., 534639., 539588.,
      786156., 793800., 801444., 809088., 790909., 798602., 806295., 813988.,
      824180., 832216., 840252., 848288., 828933., 837018., 845103., 853188.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 1}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x8x8x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      76160.,   97080.,   118688.,  140952.,  148848.,  129104.,  108800.,
      87968.,   115220.,  145625.,  176590.,  208075.,  216965.,  186970.,
      156575.,  125820.,  158704.,  199400.,  240408.,  281680.,  291172.,
      249696.,  208100.,  166432.,  204820.,  256165.,  307454.,  358631.,
      368333.,  314594.,  261135.,  208012.,  251860.,  313845.,  375326.,
      436247.,  445949.,  379778.,  314335.,  249676.,  198688.,  246620.,
      293760.,  340060.,  347200.,  294408.,  242600.,  191824.,  148260.,
      183125.,  217030.,  249935.,  254905.,  214930.,  176075.,  138380.,
      102368.,  125600.,  147824.,  169008.,  172200.,  144032.,  117000.,
      91136.,   377216.,  468280.,  557984.,  646296.,  654192.,  556112.,
      459520.,  364448.,  455700.,  564825.,  671950.,  777035.,  785925.,
      666970.,  550175.,  435580.,  524272.,  648680.,  770328.,  889168.,
      898660.,  761184.,  626660.,  495136.,  581140.,  717605.,  850430.,
      979559.,  989261.,  836066.,  686735.,  541324.,  628180.,  775285.,
      918302.,  1057175., 1066877., 901250.,  739935.,  582988.,  478240.,
      588380.,  694656.,  797020.,  804160.,  676872.,  553640.,  434512.,
      345380.,  423125.,  497350.,  568015.,  572985.,  479890.,  390475.,
      304780.,  231392.,  281760.,  329072.,  373296.,  376488.,  312992.,
      252680.,  195584.,  678272.,  839480.,  997280.,  1151640., 1159536.,
      983120.,  810240.,  640928.,  796180.,  984025.,  1167310., 1345995.,
      1354885., 1146970., 943775.,  745340.,  889840.,  1097960., 1300248.,
      1496656., 1506148., 1272672., 1045220., 823840.,  957460.,  1179045.,
      1393406., 1600487., 1610189., 1357538., 1112335., 874636.,  1004500.,
      1236725., 1461278., 1678103., 1687805., 1422722., 1165535., 916300.,
      757792.,  930140.,  1095552., 1253980., 1261120., 1059336., 864680.,
      677200.,  542500.,  663125.,  777670.,  886095.,  891065.,  744850.,
      604875.,  471180.,  360416.,  437920.,  510320.,  577584.,  580776.,
      481952.,  388360.,  300032.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 2}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x8x8x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      358631.,  368333.,  436247.,  445949.,  979559.,  989261.,
      1057175., 1066877., 1600487., 1610189., 1678103., 1687805.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 2}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x8x8x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      151408.,  152320.,  192980.,  194160.,  235912.,  237376.,  280140.,
      281904.,  295820.,  297696.,  256552.,  258208.,  216180.,  217600.,
      174768.,  175936.,  228980.,  230440.,  289375.,  291250.,  350870.,
      353180.,  413385.,  416150.,  431025.,  433930.,  371390.,  373940.,
      310975.,  313150.,  249860.,  251640.,  315272.,  317408.,  396070.,
      398800.,  477468.,  480816.,  559370.,  563360.,  578186.,  582344.,
      495756.,  499392.,  413110.,  416200.,  330344.,  332864.,  406700.,
      409640.,  508585.,  512330.,  610330.,  614908.,  711823.,  717262.,
      731031.,  736666.,  624274.,  629188.,  518105.,  522270.,  412636.,
      416024.,  499884.,  503720.,  622825.,  627690.,  744730.,  750652.,
      865487.,  872494.,  884695.,  891898.,  753298.,  759556.,  623385.,
      628670.,  495068.,  499352.,  393704.,  397376.,  488590.,  493240.,
      581868.,  587520.,  673442.,  680120.,  687554.,  694400.,  582876.,
      588816.,  480190.,  485200.,  379592.,  383648.,  293140.,  296520.,
      361975.,  366250.,  428870.,  434060.,  493745.,  499870.,  503545.,
      509810.,  424430.,  429860.,  347575.,  352150.,  273060.,  276760.,
      201776.,  204736.,  247460.,  251200.,  291112.,  295648.,  332668.,
      338016.,  338940.,  344400.,  283336.,  288064.,  230020.,  234000.,
      179056.,  182272.,  749424.,  754432.,  930260.,  936560.,  1108360.,
      1115968., 1283660., 1292592., 1299340., 1308384., 1104424., 1112224.,
      912500.,  919040.,  723632.,  728896.,  904820.,  911400.,  1121375.,
      1129650., 1333910., 1343900., 1542345., 1554070., 1559985., 1571850.,
      1323710., 1333940., 1091775., 1100350., 864260.,  871160.,  1040264.,
      1048544., 1286950., 1297360., 1528092., 1540656., 1763594., 1778336.,
      1782410., 1797320., 1509516., 1522368., 1242550., 1253320., 981608.,
      990272.,  1152172., 1162280., 1422505., 1435210., 1685530., 1700860.,
      1941135., 1959118., 1960343., 1978522., 1656466., 1672132., 1360345.,
      1373470., 1072092., 1082648., 1245356., 1256360., 1536745., 1550570.,
      1819930., 1836604., 2094799., 2114350., 2114007., 2133754., 1785490.,
      1802500., 1465625., 1479870., 1154524., 1165976., 946664.,  956480.,
      1164430., 1176760., 1374444., 1389312., 1576610., 1594040., 1590722.,
      1608320., 1338588., 1353744., 1094590., 1107280., 858824.,  869024.,
      682260.,  690760.,  835575.,  846250.,  981830.,  994700.,  1120945.,
      1136030., 1130745., 1145970., 946670.,  959780.,  769975.,  780950.,
      600740.,  609560.,  455728.,  462784.,  554660.,  563520.,  647464.,
      658144.,  734076.,  746592.,  740348.,  752976.,  615112.,  625984.,
      496260.,  505360.,  383856.,  391168.,  1347440., 1356544., 1667540.,
      1678960., 1980808., 1994560., 2287180., 2303280., 2302860., 2319072.,
      1952296., 1966240., 1608820., 1620480., 1272496., 1281856., 1580660.,
      1592360., 1953375., 1968050., 2316950., 2334620., 2671305., 2691990.,
      2688945., 2709770., 2276030., 2293940., 1872575., 1887550., 1478660.,
      1490680., 1765256., 1779680., 2177830., 2195920., 2578716., 2600496.,
      2967818., 2993312., 2986634., 3012296., 2523276., 2545344., 2071990.,
      2090440., 1632872., 1647680., 1897644., 1914920., 2336425., 2358090.,
      2760730., 2786812., 3170447., 3200974., 3189655., 3220378., 2688658.,
      2715076., 2202585., 2224670., 1731548., 1749272., 1990828., 2009000.,
      2450665., 2473450., 2895130., 2922556., 3324111., 3356206., 3343319.,
      3375610., 2817682., 2845444., 2307865., 2331070., 1813980., 1832600.,
      1499624., 1515584., 1840270., 1860280., 2167020., 2191104., 2479778.,
      2507960., 2493890., 2522240., 2094300., 2118672., 1708990., 1729360.,
      1338056., 1354400., 1071380., 1085000., 1309175., 1326250., 1534790.,
      1555340., 1748145., 1772190., 1757945., 1782130., 1468910., 1489700.,
      1192375., 1209750., 928420.,  942360.,  709680.,  720832.,  861860.,
      875840.,  1003816., 1020640., 1135484., 1155168., 1141756., 1161552.,
      946888.,  963904.,  762500.,  776720.,  588656.,  600064.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 2}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x8x8x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      711823.,  717262.,  731031.,  736666.,  865487.,  872494.,
      884695.,  891898.,  1941135., 1959118., 1960343., 1978522.,
      2094799., 2114350., 2114007., 2133754., 3170447., 3200974.,
      3189655., 3220378., 3324111., 3356206., 3343319., 3375610.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 2}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x8x8x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      301904.,  302816.,  303728.,  304640.,  384780.,  385960.,  387140.,
      388320.,  470360.,  471824.,  473288.,  474752.,  558516.,  560280.,
      562044.,  563808.,  589764.,  591640.,  593516.,  595392.,  511448.,
      513104.,  514760.,  516416.,  430940.,  432360.,  433780.,  435200.,
      348368.,  349536.,  350704.,  351872.,  456500.,  457960.,  459420.,
      460880.,  576875.,  578750.,  580625.,  582500.,  699430.,  701740.,
      704050.,  706360.,  824005.,  826770.,  829535.,  832300.,  859145.,
      862050.,  864955.,  867860.,  740230.,  742780.,  745330.,  747880.,
      619775.,  621950.,  624125.,  626300.,  497940.,  499720.,  501500.,
      503280.,  628408.,  630544.,  632680.,  634816.,  789410.,  792140.,
      794870.,  797600.,  951588.,  954936.,  958284.,  961632.,  1114750.,
      1118740., 1122730., 1126720., 1152214., 1156372., 1160530., 1164688.,
      987876.,  991512.,  995148.,  998784.,  823130.,  826220.,  829310.,
      832400.,  658168.,  660688.,  663208.,  665728.,  810460.,  813400.,
      816340.,  819280.,  1013425., 1017170., 1020915., 1024660., 1216082.,
      1220660., 1225238., 1229816., 1418207., 1423646., 1429085., 1434524.,
      1456427., 1462062., 1467697., 1473332., 1243634., 1248548., 1253462.,
      1258376., 1032045., 1036210., 1040375., 1044540., 821884.,  825272.,
      828660.,  832048.,  995932.,  999768.,  1003604., 1007440., 1240785.,
      1245650., 1250515., 1255380., 1483538., 1489460., 1495382., 1501304.,
      1723967., 1730974., 1737981., 1744988., 1762187., 1769390., 1776593.,
      1783796., 1500338., 1506596., 1512854., 1519112., 1241485., 1246770.,
      1252055., 1257340., 985852.,  990136.,  994420.,  998704.,  783736.,
      787408.,  791080.,  794752.,  972530.,  977180.,  981830.,  986480.,
      1158084., 1163736., 1169388., 1175040., 1340206., 1346884., 1353562.,
      1360240., 1368262., 1375108., 1381954., 1388800., 1159812., 1165752.,
      1171692., 1177632., 955370.,  960380.,  965390.,  970400.,  755128.,
      759184.,  763240.,  767296.,  582900.,  586280.,  589660.,  593040.,
      719675.,  723950.,  728225.,  732500.,  852550.,  857740.,  862930.,
      868120.,  981365.,  987490.,  993615.,  999740.,  1000825., 1007090.,
      1013355., 1019620., 843430.,  848860.,  854290.,  859720.,  690575.,
      695150.,  699725.,  704300.,  542420.,  546120.,  549820.,  553520.,
      400592.,  403552.,  406512.,  409472.,  491180.,  494920.,  498660.,
      502400.,  577688.,  582224.,  586760.,  591296.,  659988.,  665336.,
      670684.,  676032.,  672420.,  677880.,  683340.,  688800.,  561944.,
      566672.,  571400.,  576128.,  456060.,  460040.,  464020.,  468000.,
      354896.,  358112.,  361328.,  364544.,  1493840., 1498848., 1503856.,
      1508864., 1854220., 1860520., 1866820., 1873120., 2209112., 2216720.,
      2224328., 2231936., 2558388., 2567320., 2576252., 2585184., 2589636.,
      2598680., 2607724., 2616768., 2201048., 2208848., 2216648., 2224448.,
      1818460., 1825000., 1831540., 1838080., 1442000., 1447264., 1452528.,
      1457792., 1803060., 1809640., 1816220., 1822800., 2234475., 2242750.,
      2251025., 2259300., 2657830., 2667820., 2677810., 2687800., 3072965.,
      3084690., 3096415., 3108140., 3108105., 3119970., 3131835., 3143700.,
      2637190., 2647420., 2657650., 2667880., 2174975., 2183550., 2192125.,
      2200700., 1721620., 1728520., 1735420., 1742320., 2072248., 2080528.,
      2088808., 2097088., 2563490., 2573900., 2584310., 2594720., 3043620.,
      3056184., 3068748., 3081312., 3512446., 3527188., 3541930., 3556672.,
      3549910., 3564820., 3579730., 3594640., 3006180., 3019032., 3031884.,
      3044736., 2474330., 2485100., 2495870., 2506640., 1954552., 1963216.,
      1971880., 1980544., 2294236., 2304344., 2314452., 2324560., 2832305.,
      2845010., 2857715., 2870420., 3355730., 3371060., 3386390., 3401720.,
      3864287., 3882270., 3900253., 3918236., 3902507., 3920686., 3938865.,
      3957044., 3297266., 3312932., 3328598., 3344264., 2707565., 2720690.,
      2733815., 2746940., 2133628., 2144184., 2154740., 2165296., 2479708.,
      2490712., 2501716., 2512720., 3059665., 3073490., 3087315., 3101140.,
      3623186., 3639860., 3656534., 3673208., 4170047., 4189598., 4209149.,
      4228700., 4208267., 4228014., 4247761., 4267508., 3553970., 3570980.,
      3587990., 3605000., 2917005., 2931250., 2945495., 2959740., 2297596.,
      2309048., 2320500., 2331952., 1883512., 1893328., 1903144., 1912960.,
      2316530., 2328860., 2341190., 2353520., 2734020., 2748888., 2763756.,
      2778624., 3135790., 3153220., 3170650., 3188080., 3163846., 3181444.,
      3199042., 3216640., 2662020., 2677176., 2692332., 2707488., 2176490.,
      2189180., 2201870., 2214560., 1707448., 1717648., 1727848., 1738048.,
      1356020., 1364520., 1373020., 1381520., 1660475., 1671150., 1681825.,
      1692500., 1950790., 1963660., 1976530., 1989400., 2226805., 2241890.,
      2256975., 2272060., 2246265., 2261490., 2276715., 2291940., 1880230.,
      1893340., 1906450., 1919560., 1528975., 1539950., 1550925., 1561900.,
      1192660., 1201480., 1210300., 1219120., 904400.,  911456.,  918512.,
      925568.,  1100460., 1109320., 1118180., 1127040., 1284248., 1294928.,
      1305608., 1316288., 1455636., 1468152., 1480668., 1493184., 1468068.,
      1480696., 1493324., 1505952., 1219352., 1230224., 1241096., 1251968.,
      983420.,  992520.,  1001620., 1010720., 760400.,  767712.,  775024.,
      782336.,  2685776., 2694880., 2703984., 2713088., 3323660., 3335080.,
      3346500., 3357920., 3947864., 3961616., 3975368., 3989120., 4558260.,
      4574360., 4590460., 4606560., 4589508., 4605720., 4621932., 4638144.,
      3890648., 3904592., 3918536., 3932480., 3205980., 3217640., 3229300.,
      3240960., 2535632., 2544992., 2554352., 2563712., 3149620., 3161320.,
      3173020., 3184720., 3892075., 3906750., 3921425., 3936100., 4616230.,
      4633900., 4651570., 4669240., 5321925., 5342610., 5363295., 5383980.,
      5357065., 5377890., 5398715., 5419540., 4534150., 4552060., 4569970.,
      4587880., 3730175., 3745150., 3760125., 3775100., 2945300., 2957320.,
      2969340., 2981360., 3516088., 3530512., 3544936., 3559360., 4337570.,
      4355660., 4373750., 4391840., 5135652., 5157432., 5179212., 5200992.,
      5910142., 5935636., 5961130., 5986624., 5947606., 5973268., 5998930.,
      6024592., 5024484., 5046552., 5068620., 5090688., 4125530., 4143980.,
      4162430., 4180880., 3250936., 3265744., 3280552., 3295360., 3778012.,
      3795288., 3812564., 3829840., 4651185., 4672850., 4694515., 4716180.,
      5495378., 5521460., 5547542., 5573624., 6310367., 6340894., 6371421.,
      6401948., 6348587., 6379310., 6410033., 6440756., 5350898., 5377316.,
      5403734., 5430152., 4383085., 4405170., 4427255., 4449340., 3445372.,
      3463096., 3480820., 3498544., 3963484., 3981656., 3999828., 4018000.,
      4878545., 4901330., 4924115., 4946900., 5762834., 5790260., 5817686.,
      5845112., 6616127., 6648222., 6680317., 6712412., 6654347., 6686638.,
      6718929., 6751220., 5607602., 5635364., 5663126., 5690888., 4592525.,
      4615730., 4638935., 4662140., 3609340., 3627960., 3646580., 3665200.,
      2983288., 2999248., 3015208., 3031168., 3660530., 3680540., 3700550.,
      3720560., 4309956., 4334040., 4358124., 4382208., 4931374., 4959556.,
      4987738., 5015920., 4959430., 4987780., 5016130., 5044480., 4164228.,
      4188600., 4212972., 4237344., 3397610., 3417980., 3438350., 3458720.,
      2659768., 2676112., 2692456., 2708800., 2129140., 2142760., 2156380.,
      2170000., 2601275., 2618350., 2635425., 2652500., 3049030., 3069580.,
      3090130., 3110680., 3472245., 3496290., 3520335., 3544380., 3491705.,
      3515890., 3540075., 3564260., 2917030., 2937820., 2958610., 2979400.,
      2367375., 2384750., 2402125., 2419500., 1842900., 1856840., 1870780.,
      1884720., 1408208., 1419360., 1430512., 1441664., 1709740., 1723720.,
      1737700., 1751680., 1990808., 2007632., 2024456., 2041280., 2251284.,
      2270968., 2290652., 2310336., 2263716., 2283512., 2303308., 2323104.,
      1876760., 1893776., 1910792., 1927808., 1510780., 1525000., 1539220.,
      1553440., 1165904., 1177312., 1188720., 1200128.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 2}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x8x8x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1418207., 1423646., 1429085., 1434524., 1456427., 1462062., 1467697.,
      1473332., 1723967., 1730974., 1737981., 1744988., 1762187., 1769390.,
      1776593., 1783796., 3864287., 3882270., 3900253., 3918236., 3902507.,
      3920686., 3938865., 3957044., 4170047., 4189598., 4209149., 4228700.,
      4208267., 4228014., 4247761., 4267508., 6310367., 6340894., 6371421.,
      6401948., 6348587., 6379310., 6410033., 6440756., 6616127., 6648222.,
      6680317., 6712412., 6654347., 6686638., 6718929., 6751220.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 2}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x8x8x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      602784.,   768520.,   939760.,   1116248.,  1179192.,  1022896.,
      862120.,   697120.,   913560.,   1154750.,  1400420.,  1650250.,
      1721090.,  1483220.,  1242150.,  998200.,   1259696.,  1582780.,
      1908360.,  2236052.,  2311652.,  1982376.,  1652140.,  1321328.,
      1626856.,  2034690.,  2442076.,  2848566.,  2925790.,  2498860.,
      2074170.,  1652168.,  2001384.,  2493890.,  2982364.,  3466358.,
      3543582.,  3017644.,  2497530.,  1983688.,  1577840.,  1958380.,
      2332584.,  2700068.,  2756852.,  2337480.,  1925980.,  1522736.,
      1176280.,  1452750.,  1721540.,  1982330.,  2021810.,  1704500.,
      1396150.,  1097080.,  811040.,   994920.,   1170736.,  1338232.,
      1363544.,  1140208.,  925960.,   721056.,   3003040.,  3727880.,
      4441840.,  5144664.,  5207608.,  4426672.,  3657640.,  2900768.,
      3627160.,  4495550.,  5347940.,  6184010.,  6254850.,  5307860.,
      4378150.,  3466040.,  4171952.,  5161660.,  6129288.,  7074452.,
      7150052.,  6055848.,  4985260.,  3938672.,  4623080.,  5708290.,
      6764380.,  7790902.,  7868126.,  6649132.,  5461050.,  4304328.,
      4997608.,  6167490.,  7304668.,  8408694.,  8485918.,  7167916.,
      5884410.,  4635848.,  3801968.,  4677100.,  5521320.,  6334244.,
      6391028.,  5378760.,  4398940.,  3451952.,  2743000.,  3359950.,
      3948740.,  4509050.,  4548530.,  3808820.,  3098550.,  2418040.,
      1835040.,  2233960.,  2608432.,  2958200.,  2983512.,  2479600.,
      2001160.,  1548448.,  5403296.,  6687240.,  7943920.,  9173080.,
      9236024.,  7830448.,  6453160.,  5104416.,  6340760.,  7836350.,
      9295460.,  10717770., 10788610., 9132500.,  7514150.,  5933880.,
      7084208.,  8740540.,  10350216., 11912852., 11988452., 10129320.,
      8318380.,  6556016.,  7619304.,  9381890.,  11086684., 12733238.,
      12810462., 10799404., 8847930.,  6956488.,  7993832.,  9841090.,
      11626972., 13351030., 13428254., 11318188., 9271290.,  7288008.,
      6026096.,  7395820.,  8710056.,  9968420.,  10025204., 8420040.,
      6871900.,  5381168.,  4309720.,  5267150.,  6175940.,  7035770.,
      7075250.,  5913140.,  4800950.,  3739000.,  2859040.,  3473000.,
      4046128.,  4578168.,  4603480.,  3818992.,  3076360.,  2375840.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 4}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x8x8x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2848566., 2925790., 3466358.,  3543582.,  7790902.,  7868126.,
      8408694., 8485918., 12733238., 12810462., 13351030., 13428254.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 4}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x8x8x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      346400.,  350016.,  462792.,  467472.,  581936.,  587744.,  703320.,
      710320.,  759128.,  766576.,  680368.,  686944.,  605000.,  610640.,
      533536.,  538176.,  605320.,  611120.,  806498.,  813948.,  1008364.,
      1017544., 1210278., 1221268., 1281766., 1293316., 1138700., 1148840.,
      1001602., 1010252., 871112.,  878192.,  934448.,  942944.,  1233164.,
      1244024., 1528584., 1541904., 1819940., 1835816., 1900836., 1917384.,
      1673928., 1688400., 1457484., 1469784., 1252272., 1262304., 1305112.,
      1316816., 1706950., 1721860., 2099588., 2117816., 2482130., 2503788.,
      2566162., 2588604., 2243044., 2262616., 1936806., 1953396., 1648344.,
      1661840., 1690136., 1705424., 2194886., 2214276., 2683268., 2706872.,
      3154386., 3182316., 3238418., 3267132., 2816484., 2841432., 2418598.,
      2439668., 2045656., 2062736., 1566640., 1581280., 2063212., 2081752.,
      2542920., 2565456., 3004996., 3031624., 3076932., 3104232., 2697480.,
      2721168., 2342060., 2362040., 2011440., 2027616., 1618696., 1632176.,
      2155778., 2172828., 2677420., 2698120., 3182982., 3207412., 3249094.,
      3274084., 2870220., 2891880., 2513442., 2531692., 2179400., 2194160.,
      1610272., 1622080., 1974920., 1989840., 2323376., 2341472., 2655128.,
      2676464., 2705304., 2727088., 2261552., 2280416., 1836040., 1851920.,
      1429280., 1442112., 346400.,  350016.,  462792.,  467472.,  581936.,
      587744.,  703320.,  710320.,  759128.,  766576.,  680368.,  686944.,
      605000.,  610640.,  533536.,  538176.,  605320.,  611120.,  806498.,
      813948.,  1008364., 1017544., 1210278., 1221268., 1281766., 1293316.,
      1138700., 1148840., 1001602., 1010252., 871112.,  878192.,  934448.,
      942944.,  1233164., 1244024., 1528584., 1541904., 1819940., 1835816.,
      1900836., 1917384., 1673928., 1688400., 1457484., 1469784., 1252272.,
      1262304., 1305112., 1316816., 1706950., 1721860., 2099588., 2117816.,
      2482130., 2503788., 2566162., 2588604., 2243044., 2262616., 1936806.,
      1953396., 1648344., 1661840., 1690136., 1705424., 2194886., 2214276.,
      2683268., 2706872., 3154386., 3182316., 3238418., 3267132., 2816484.,
      2841432., 2418598., 2439668., 2045656., 2062736., 1566640., 1581280.,
      2063212., 2081752., 2542920., 2565456., 3004996., 3031624., 3076932.,
      3104232., 2697480., 2721168., 2342060., 2362040., 2011440., 2027616.,
      1618696., 1632176., 2155778., 2172828., 2677420., 2698120., 3182982.,
      3207412., 3249094., 3274084., 2870220., 2891880., 2513442., 2531692.,
      2179400., 2194160., 1610272., 1622080., 1974920., 1989840., 2323376.,
      2341472., 2655128., 2676464., 2705304., 2727088., 2261552., 2280416.,
      1836040., 1851920., 1429280., 1442112., 346400.,  350016.,  462792.,
      467472.,  581936.,  587744.,  703320.,  710320.,  759128.,  766576.,
      680368.,  686944.,  605000.,  610640.,  533536.,  538176.,  605320.,
      611120.,  806498.,  813948.,  1008364., 1017544., 1210278., 1221268.,
      1281766., 1293316., 1138700., 1148840., 1001602., 1010252., 871112.,
      878192.,  934448.,  942944.,  1233164., 1244024., 1528584., 1541904.,
      1819940., 1835816., 1900836., 1917384., 1673928., 1688400., 1457484.,
      1469784., 1252272., 1262304., 1305112., 1316816., 1706950., 1721860.,
      2099588., 2117816., 2482130., 2503788., 2566162., 2588604., 2243044.,
      2262616., 1936806., 1953396., 1648344., 1661840., 1690136., 1705424.,
      2194886., 2214276., 2683268., 2706872., 3154386., 3182316., 3238418.,
      3267132., 2816484., 2841432., 2418598., 2439668., 2045656., 2062736.,
      1566640., 1581280., 2063212., 2081752., 2542920., 2565456., 3004996.,
      3031624., 3076932., 3104232., 2697480., 2721168., 2342060., 2362040.,
      2011440., 2027616., 1618696., 1632176., 2155778., 2172828., 2677420.,
      2698120., 3182982., 3207412., 3249094., 3274084., 2870220., 2891880.,
      2513442., 2531692., 2179400., 2194160., 1610272., 1622080., 1974920.,
      1989840., 2323376., 2341472., 2655128., 2676464., 2705304., 2727088.,
      2261552., 2280416., 1836040., 1851920., 1429280., 1442112.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 4}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 256.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x8x8x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2482130., 2503788., 2566162., 2588604., 3154386., 3182316.,
      3238418., 3267132., 2482130., 2503788., 2566162., 2588604.,
      3154386., 3182316., 3238418., 3267132., 2482130., 2503788.,
      2566162., 2588604., 3154386., 3182316., 3238418., 3267132.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 4}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 256.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x8x8x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      505888.,  509504.,  513120.,  516736.,  675144.,  679824.,  684504.,
      689184.,  841648.,  847456.,  853264.,  859072.,  1004376., 1011376.,
      1018376., 1025376., 1066392., 1073840., 1081288., 1088736., 1029552.,
      1036128., 1042704., 1049280., 874120.,  879760.,  885400.,  891040.,
      730656.,  735296.,  739936.,  744576.,  790120.,  795920.,  801720.,
      807520.,  1043882., 1051332., 1058782., 1066232., 1289212., 1298392.,
      1307572., 1316752., 1526366., 1537356., 1548346., 1559336., 1599150.,
      1610700., 1622250., 1633800., 1514620., 1524760., 1534900., 1545040.,
      1287994., 1296644., 1305294., 1313944., 1082856., 1089936., 1097016.,
      1104096., 1118000., 1126496., 1134992., 1143488., 1467820., 1478680.,
      1489540., 1500400., 1833992., 1847312., 1860632., 1873952., 2183748.,
      2199624., 2215500., 2231376., 2275236., 2291784., 2308332., 2324880.,
      2121992., 2136464., 2150936., 2165408., 1802892., 1815192., 1827492.,
      1839792., 1514544., 1524576., 1534608., 1544640., 1528440., 1540144.,
      1551848., 1563552., 1985358., 2000268., 2015178., 2030088., 2479572.,
      2497800., 2516028., 2534256., 2945290., 2966948., 2988606., 3010264.,
      3042938., 3065380., 3087822., 3110264., 2796372., 2815944., 2835516.,
      2855088., 2364030., 2380620., 2397210., 2413800., 1975544., 1989040.,
      2002536., 2016032., 1967224., 1982512., 1997800., 2013088., 2530766.,
      2550156., 2569546., 2588936., 3150036., 3173640., 3197244., 3220848.,
      3726474., 3754404., 3782334., 3810264., 3824122., 3852836., 3881550.,
      3910264., 3479124., 3504072., 3529020., 3553968., 2929918., 2950988.,
      2972058., 2993128., 2438904., 2455984., 2473064., 2490144., 1670192.,
      1684832., 1699472., 1714112., 2123372., 2141912., 2160452., 2178992.,
      2664072., 2686608., 2709144., 2731680., 3161220., 3187848., 3214476.,
      3241104., 3238884., 3266184., 3293484., 3320784., 2783624., 2807312.,
      2831000., 2854688., 2384716., 2404696., 2424676., 2444656., 2043696.,
      2059872., 2076048., 2092224., 1480552., 1494032., 1507512., 1520992.,
      1916778., 1933828., 1950878., 1967928., 2476156., 2496856., 2517556.,
      2538256., 2995102., 3019532., 3043962., 3068392., 3061230., 3086220.,
      3111210., 3136200., 2672380., 2694040., 2715700., 2737360., 2335994.,
      2354244., 2372494., 2390744., 2053352., 2068112., 2082872., 2097632.,
      1435168., 1446976., 1458784., 1470592., 1697480., 1712400., 1727320.,
      1742240., 2118320., 2136416., 2154512., 2172608., 2501592., 2522928.,
      2544264., 2565600., 2552344., 2574128., 2595912., 2617696., 2115248.,
      2134112., 2152976., 2171840., 1722888., 1738768., 1754648., 1770528.,
      1376288., 1389120., 1401952., 1414784., 505888.,  509504.,  513120.,
      516736.,  675144.,  679824.,  684504.,  689184.,  841648.,  847456.,
      853264.,  859072.,  1004376., 1011376., 1018376., 1025376., 1066392.,
      1073840., 1081288., 1088736., 1029552., 1036128., 1042704., 1049280.,
      874120.,  879760.,  885400.,  891040.,  730656.,  735296.,  739936.,
      744576.,  790120.,  795920.,  801720.,  807520.,  1043882., 1051332.,
      1058782., 1066232., 1289212., 1298392., 1307572., 1316752., 1526366.,
      1537356., 1548346., 1559336., 1599150., 1610700., 1622250., 1633800.,
      1514620., 1524760., 1534900., 1545040., 1287994., 1296644., 1305294.,
      1313944., 1082856., 1089936., 1097016., 1104096., 1118000., 1126496.,
      1134992., 1143488., 1467820., 1478680., 1489540., 1500400., 1833992.,
      1847312., 1860632., 1873952., 2183748., 2199624., 2215500., 2231376.,
      2275236., 2291784., 2308332., 2324880., 2121992., 2136464., 2150936.,
      2165408., 1802892., 1815192., 1827492., 1839792., 1514544., 1524576.,
      1534608., 1544640., 1528440., 1540144., 1551848., 1563552., 1985358.,
      2000268., 2015178., 2030088., 2479572., 2497800., 2516028., 2534256.,
      2945290., 2966948., 2988606., 3010264., 3042938., 3065380., 3087822.,
      3110264., 2796372., 2815944., 2835516., 2855088., 2364030., 2380620.,
      2397210., 2413800., 1975544., 1989040., 2002536., 2016032., 1967224.,
      1982512., 1997800., 2013088., 2530766., 2550156., 2569546., 2588936.,
      3150036., 3173640., 3197244., 3220848., 3726474., 3754404., 3782334.,
      3810264., 3824122., 3852836., 3881550., 3910264., 3479124., 3504072.,
      3529020., 3553968., 2929918., 2950988., 2972058., 2993128., 2438904.,
      2455984., 2473064., 2490144., 1670192., 1684832., 1699472., 1714112.,
      2123372., 2141912., 2160452., 2178992., 2664072., 2686608., 2709144.,
      2731680., 3161220., 3187848., 3214476., 3241104., 3238884., 3266184.,
      3293484., 3320784., 2783624., 2807312., 2831000., 2854688., 2384716.,
      2404696., 2424676., 2444656., 2043696., 2059872., 2076048., 2092224.,
      1480552., 1494032., 1507512., 1520992., 1916778., 1933828., 1950878.,
      1967928., 2476156., 2496856., 2517556., 2538256., 2995102., 3019532.,
      3043962., 3068392., 3061230., 3086220., 3111210., 3136200., 2672380.,
      2694040., 2715700., 2737360., 2335994., 2354244., 2372494., 2390744.,
      2053352., 2068112., 2082872., 2097632., 1435168., 1446976., 1458784.,
      1470592., 1697480., 1712400., 1727320., 1742240., 2118320., 2136416.,
      2154512., 2172608., 2501592., 2522928., 2544264., 2565600., 2552344.,
      2574128., 2595912., 2617696., 2115248., 2134112., 2152976., 2171840.,
      1722888., 1738768., 1754648., 1770528., 1376288., 1389120., 1401952.,
      1414784., 505888.,  509504.,  513120.,  516736.,  675144.,  679824.,
      684504.,  689184.,  841648.,  847456.,  853264.,  859072.,  1004376.,
      1011376., 1018376., 1025376., 1066392., 1073840., 1081288., 1088736.,
      1029552., 1036128., 1042704., 1049280., 874120.,  879760.,  885400.,
      891040.,  730656.,  735296.,  739936.,  744576.,  790120.,  795920.,
      801720.,  807520.,  1043882., 1051332., 1058782., 1066232., 1289212.,
      1298392., 1307572., 1316752., 1526366., 1537356., 1548346., 1559336.,
      1599150., 1610700., 1622250., 1633800., 1514620., 1524760., 1534900.,
      1545040., 1287994., 1296644., 1305294., 1313944., 1082856., 1089936.,
      1097016., 1104096., 1118000., 1126496., 1134992., 1143488., 1467820.,
      1478680., 1489540., 1500400., 1833992., 1847312., 1860632., 1873952.,
      2183748., 2199624., 2215500., 2231376., 2275236., 2291784., 2308332.,
      2324880., 2121992., 2136464., 2150936., 2165408., 1802892., 1815192.,
      1827492., 1839792., 1514544., 1524576., 1534608., 1544640., 1528440.,
      1540144., 1551848., 1563552., 1985358., 2000268., 2015178., 2030088.,
      2479572., 2497800., 2516028., 2534256., 2945290., 2966948., 2988606.,
      3010264., 3042938., 3065380., 3087822., 3110264., 2796372., 2815944.,
      2835516., 2855088., 2364030., 2380620., 2397210., 2413800., 1975544.,
      1989040., 2002536., 2016032., 1967224., 1982512., 1997800., 2013088.,
      2530766., 2550156., 2569546., 2588936., 3150036., 3173640., 3197244.,
      3220848., 3726474., 3754404., 3782334., 3810264., 3824122., 3852836.,
      3881550., 3910264., 3479124., 3504072., 3529020., 3553968., 2929918.,
      2950988., 2972058., 2993128., 2438904., 2455984., 2473064., 2490144.,
      1670192., 1684832., 1699472., 1714112., 2123372., 2141912., 2160452.,
      2178992., 2664072., 2686608., 2709144., 2731680., 3161220., 3187848.,
      3214476., 3241104., 3238884., 3266184., 3293484., 3320784., 2783624.,
      2807312., 2831000., 2854688., 2384716., 2404696., 2424676., 2444656.,
      2043696., 2059872., 2076048., 2092224., 1480552., 1494032., 1507512.,
      1520992., 1916778., 1933828., 1950878., 1967928., 2476156., 2496856.,
      2517556., 2538256., 2995102., 3019532., 3043962., 3068392., 3061230.,
      3086220., 3111210., 3136200., 2672380., 2694040., 2715700., 2737360.,
      2335994., 2354244., 2372494., 2390744., 2053352., 2068112., 2082872.,
      2097632., 1435168., 1446976., 1458784., 1470592., 1697480., 1712400.,
      1727320., 1742240., 2118320., 2136416., 2154512., 2172608., 2501592.,
      2522928., 2544264., 2565600., 2552344., 2574128., 2595912., 2617696.,
      2115248., 2134112., 2152976., 2171840., 1722888., 1738768., 1754648.,
      1770528., 1376288., 1389120., 1401952., 1414784.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 4}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 256.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x8x8x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2945290., 2966948., 2988606., 3010264., 3042938., 3065380., 3087822.,
      3110264., 3726474., 3754404., 3782334., 3810264., 3824122., 3852836.,
      3881550., 3910264., 2945290., 2966948., 2988606., 3010264., 3042938.,
      3065380., 3087822., 3110264., 3726474., 3754404., 3782334., 3810264.,
      3824122., 3852836., 3881550., 3910264., 2945290., 2966948., 2988606.,
      3010264., 3042938., 3065380., 3087822., 3110264., 3726474., 3754404.,
      3782334., 3810264., 3824122., 3852836., 3881550., 3910264.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 4}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 256.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x8x9x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      10752.,  13660.,  16648.,  19712.,  20706.,  21700.,  18760.,  15760.,
      12704.,  16280.,  20525.,  24830.,  29190.,  30310.,  31430.,  27020.,
      22575.,  18100.,  22440.,  28140.,  33864.,  39606.,  40803.,  42000.,
      35952.,  29910.,  23880.,  28980.,  36190.,  43372.,  50519.,  51744.,
      52969.,  45178.,  37450.,  29792.,  35658.,  44380.,  53011.,  61544.,
      62769.,  63994.,  54439.,  45010.,  35714.,  28176.,  34935.,  41568.,
      48069.,  48972.,  49875.,  42252.,  34785.,  27480.,  21070.,  26000.,
      30785.,  35420.,  36050.,  36680.,  30905.,  25300.,  19870.,  14592.,
      17890.,  21040.,  24038.,  24444.,  24850.,  20776.,  16870.,  13136.,
      53376.,  66220.,  78856.,  91280.,  92274.,  93268.,  79240.,  65440.,
      51872.,  64520.,  79925.,  95030.,  109830., 110950., 112070., 95060.,
      78375.,  62020.,  74280.,  91860.,  109032., 125790., 126987., 128184.,
      108528., 89310.,  70536.,  82404.,  101710., 120484., 138719., 139944.,
      141169., 119266., 97930.,  77168.,  89082.,  109900., 130123., 149744.,
      150969., 152194., 128527., 105490., 83090.,  67920.,  83535.,  98592.,
      113085., 113988., 114891., 96684.,  79065.,  62040.,  49150.,  60200.,
      70745.,  80780.,  81410.,  82040.,  68705.,  55900.,  43630.,  33024.,
      40210.,  46960.,  53270.,  53676.,  54082.,  44968.,  36310.,  28112.,
      96000.,  118780., 141064., 162848., 163842., 164836., 139720., 115120.,
      91040.,  112760., 139325., 165230., 190470., 191590., 192710., 163100.,
      134175., 105940., 126120., 155580., 184200., 211974., 213171., 214368.,
      181104., 148710., 117192., 135828., 167230., 197596., 226919., 228144.,
      229369., 193354., 158410., 124544., 142506., 175420., 207235., 237944.,
      239169., 240394., 202615., 165970., 130466., 107664., 132135., 155616.,
      178101., 179004., 179907., 151116., 123345., 96600.,  77230.,  94400.,
      110705., 126140., 126770., 127400., 106505., 86500.,  67390.,  51456.,
      62530.,  72880.,  82502.,  82908.,  83314.,  69160.,  55750.,  43088.};
  const std::array<int, 4> in_shape = {{3, 8, 9, 1}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x8x9x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      50519.,  51744.,  52969.,  61544.,  62769.,  63994.,
      138719., 139944., 141169., 149744., 150969., 152194.,
      226919., 228144., 229369., 237944., 239169., 240394.};
  const std::array<int, 4> in_shape = {{3, 8, 9, 1}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x8x9x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      21248.,  21504.,  26990.,  27320.,  32888.,  33296.,  38934.,  39424.,
      40894.,  41412.,  42854.,  43400.,  37040.,  37520.,  31110.,  31520.,
      25072.,  25408.,  32150.,  32560.,  40525.,  41050.,  49015.,  49660.,
      57610.,  58380.,  59815.,  60620.,  62020.,  62860.,  53305.,  54040.,
      44525.,  45150.,  35690.,  36200.,  44280.,  44880.,  55515.,  56280.,
      66792.,  67728.,  78099.,  79212.,  80451.,  81606.,  82803.,  84000.,
      70860.,  71904.,  58935.,  59820.,  47040.,  47760.,  57134.,  57960.,
      71330.,  72380.,  85463.,  86744.,  99519.,  101038., 101920., 103488.,
      104321., 105938., 88949.,  90356.,  73710.,  74900.,  58618.,  59584.,
      70238.,  71316.,  87395.,  88760.,  104363., 106022., 121128., 123088.,
      123529., 125538., 125930., 127988., 107093., 108878., 88515.,  90020.,
      70210.,  71428.,  55320.,  56352.,  68565.,  69870.,  81552.,  83136.,
      94269.,  96138.,  96033.,  97944.,  97797.,  99750.,  82812.,  84504.,
      68145.,  69570.,  53808.,  54960.,  41190.,  42140.,  50800.,  52000.,
      60115.,  61570.,  69125.,  70840.,  70350.,  72100.,  71575.,  73360.,
      60265.,  61810.,  49300.,  50600.,  38690.,  39740.,  28352.,  29184.,
      34730.,  35780.,  40808.,  42080.,  46578.,  48076.,  47362.,  48888.,
      48146.,  49700.,  40208.,  41552.,  32610.,  33740.,  25360.,  26272.,
      105344., 106752., 130670., 132440., 155576., 157712., 180054., 182560.,
      182014., 184548., 183974., 186536., 156272., 158480., 129030., 130880.,
      102256., 103744., 127190., 129040., 157525., 159850., 187255., 190060.,
      216370., 219660., 218575., 221900., 220780., 224140., 187225., 190120.,
      154325., 156750., 122090., 124040., 146232., 148560., 180795., 183720.,
      214536., 218064., 247443., 251580., 249795., 253974., 252147., 256368.,
      213420., 217056., 175575., 178620., 138624., 141072., 161966., 164808.,
      199850., 203420., 236663., 240968., 272391., 277438., 274792., 279888.,
      277193., 282338., 234101., 238532., 192150., 195860., 151354., 154336.,
      175070., 178164., 215915., 219800., 255563., 260246., 294000., 299488.,
      296401., 301938., 298802., 304388., 252245., 257054., 206955., 210980.,
      162946., 166180., 133080., 135840., 163605., 167070., 193008., 197184.,
      221277., 226170., 223041., 227976., 224805., 229782., 189084., 193368.,
      154545., 158130., 121200., 124080., 95910.,  98300.,  117400., 120400.,
      137875., 141490., 157325., 161560., 158550., 162820., 159775., 164080.,
      133705., 137410., 108700., 111800., 84770.,  87260.,  64064.,  66048.,
      77930.,  80420.,  90920.,  93920.,  103026., 106540., 103810., 107352.,
      104594., 108164., 86864.,  89936.,  70050.,  72620.,  54160.,  56224.,
      189440., 192000., 234350., 237560., 278264., 282128., 321174., 325696.,
      323134., 327684., 325094., 329672., 275504., 279440., 226950., 230240.,
      179440., 182080., 222230., 225520., 274525., 278650., 325495., 330460.,
      375130., 380940., 377335., 383180., 379540., 385420., 321145., 326200.,
      264125., 268350., 208490., 211880., 248184., 252240., 306075., 311160.,
      362280., 368400., 416787., 423948., 419139., 426342., 421491., 428736.,
      355980., 362208., 292215., 297420., 230208., 234384., 266798., 271656.,
      328370., 334460., 387863., 395192., 445263., 453838., 447664., 456288.,
      450065., 458738., 379253., 386708., 310590., 316820., 244090., 249088.,
      279902., 285012., 344435., 350840., 406763., 414470., 466872., 475888.,
      469273., 478338., 471674., 480788., 397397., 405230., 325395., 331940.,
      255682., 260932., 210840., 215328., 258645., 264270., 304464., 311232.,
      348285., 356202., 350049., 358008., 351813., 359814., 295356., 302232.,
      240945., 246690., 188592., 193200., 150630., 154460., 184000., 188800.,
      215635., 221410., 245525., 252280., 246750., 253540., 247975., 254800.,
      207145., 213010., 168100., 173000., 130850., 134780., 99776.,  102912.,
      121130., 125060., 141032., 145760., 159474., 165004., 160258., 165816.,
      161042., 166628., 133520., 138320., 107490., 111500., 82960.,  86176.};
  const std::array<int, 4> in_shape = {{3, 8, 9, 1}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x8x9x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      99519.,  101038., 101920., 103488., 104321., 105938., 121128., 123088.,
      123529., 125538., 125930., 127988., 272391., 277438., 274792., 279888.,
      277193., 282338., 294000., 299488., 296401., 301938., 298802., 304388.,
      445263., 453838., 447664., 456288., 450065., 458738., 466872., 475888.,
      469273., 478338., 471674., 480788.};
  const std::array<int, 4> in_shape = {{3, 8, 9, 1}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x8x9x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      42240.,  42496.,  42752.,  43008.,  53650.,  53980.,  54310.,  54640.,
      65368.,  65776.,  66184.,  66592.,  77378.,  77868.,  78358.,  78848.,
      81270.,  81788.,  82306.,  82824.,  85162.,  85708.,  86254.,  86800.,
      73600.,  74080.,  74560.,  75040.,  61810.,  62220.,  62630.,  63040.,
      49808.,  50144.,  50480.,  50816.,  63890.,  64300.,  64710.,  65120.,
      80525.,  81050.,  81575.,  82100.,  97385.,  98030.,  98675.,  99320.,
      114450., 115220., 115990., 116760., 118825., 119630., 120435., 121240.,
      123200., 124040., 124880., 125720., 105875., 106610., 107345., 108080.,
      88425.,  89050.,  89675.,  90300.,  70870.,  71380.,  71890.,  72400.,
      87960.,  88560.,  89160.,  89760.,  110265., 111030., 111795., 112560.,
      132648., 133584., 134520., 135456., 155085., 156198., 157311., 158424.,
      159747., 160902., 162057., 163212., 164409., 165606., 166803., 168000.,
      140676., 141720., 142764., 143808., 116985., 117870., 118755., 119640.,
      93360.,  94080.,  94800.,  95520.,  113442., 114268., 115094., 115920.,
      141610., 142660., 143710., 144760., 169645., 170926., 172207., 173488.,
      197519., 199038., 200557., 202076., 202272., 203840., 205408., 206976.,
      207025., 208642., 210259., 211876., 176491., 177898., 179305., 180712.,
      146230., 147420., 148610., 149800., 116270., 117236., 118202., 119168.,
      139398., 140476., 141554., 142632., 173425., 174790., 176155., 177520.,
      207067., 208726., 210385., 212044., 240296., 242256., 244216., 246176.,
      245049., 247058., 249067., 251076., 249802., 251860., 253918., 255976.,
      212401., 214186., 215971., 217756., 175525., 177030., 178535., 180040.,
      139202., 140420., 141638., 142856., 109608., 110640., 111672., 112704.,
      135825., 137130., 138435., 139740., 161520., 163104., 164688., 166272.,
      186669., 188538., 190407., 192276., 190155., 192066., 193977., 195888.,
      193641., 195594., 197547., 199500., 163932., 165624., 167316., 169008.,
      134865., 136290., 137715., 139140., 106464., 107616., 108768., 109920.,
      81430.,  82380.,  83330.,  84280.,  100400., 101600., 102800., 104000.,
      118775., 120230., 121685., 123140., 136535., 138250., 139965., 141680.,
      138950., 140700., 142450., 144200., 141365., 143150., 144935., 146720.,
      118985., 120530., 122075., 123620., 97300.,  98600.,  99900.,  101200.,
      76330.,  77380.,  78430.,  79480.,  55872.,  56704.,  57536.,  58368.,
      68410.,  69460.,  70510.,  71560.,  80344.,  81616.,  82888.,  84160.,
      91658.,  93156.,  94654.,  96152.,  93198.,  94724.,  96250.,  97776.,
      94738.,  96292.,  97846.,  99400.,  79072.,  80416.,  81760.,  83104.,
      64090.,  65220.,  66350.,  67480.,  49808.,  50720.,  51632.,  52544.,
      209280., 210688., 212096., 213504., 259570., 261340., 263110., 264880.,
      309016., 311152., 313288., 315424., 357602., 360108., 362614., 365120.,
      361494., 364028., 366562., 369096., 365386., 367948., 370510., 373072.,
      310336., 312544., 314752., 316960., 256210., 258060., 259910., 261760.,
      203024., 204512., 206000., 207488., 252530., 254380., 256230., 258080.,
      312725., 315050., 317375., 319700., 371705., 374510., 377315., 380120.,
      429450., 432740., 436030., 439320., 433825., 437150., 440475., 443800.,
      438200., 441560., 444920., 448280., 371555., 374450., 377345., 380240.,
      306225., 308650., 311075., 313500., 242230., 244180., 246130., 248080.,
      290136., 292464., 294792., 297120., 358665., 361590., 364515., 367440.,
      425544., 429072., 432600., 436128., 490749., 494886., 499023., 503160.,
      495411., 499590., 503769., 507948., 500073., 504294., 508515., 512736.,
      423204., 426840., 430476., 434112., 348105., 351150., 354195., 357240.,
      274800., 277248., 279696., 282144., 321090., 323932., 326774., 329616.,
      396130., 399700., 403270., 406840., 469021., 473326., 477631., 481936.,
      539735., 544782., 549829., 554876., 544488., 549584., 554680., 559776.,
      549241., 554386., 559531., 564676., 463771., 468202., 472633., 477064.,
      380590., 384300., 388010., 391720., 299726., 302708., 305690., 308672.,
      347046., 350140., 353234., 356328., 427945., 431830., 435715., 439600.,
      506443., 511126., 515809., 520492., 582512., 588000., 593488., 598976.,
      587265., 592802., 598339., 603876., 592018., 597604., 603190., 608776.,
      499681., 504490., 509299., 514108., 409885., 413910., 417935., 421960.,
      322658., 325892., 329126., 332360., 263400., 266160., 268920., 271680.,
      323745., 327210., 330675., 334140., 381840., 386016., 390192., 394368.,
      437661., 442554., 447447., 452340., 441147., 446082., 451017., 455952.,
      444633., 449610., 454587., 459564., 373884., 378168., 382452., 386736.,
      305505., 309090., 312675., 316260., 239520., 242400., 245280., 248160.,
      189430., 191820., 194210., 196600., 231800., 234800., 237800., 240800.,
      272135., 275750., 279365., 282980., 310415., 314650., 318885., 323120.,
      312830., 317100., 321370., 325640., 315245., 319550., 323855., 328160.,
      263705., 267410., 271115., 274820., 214300., 217400., 220500., 223600.,
      167050., 169540., 172030., 174520., 126144., 128128., 130112., 132096.,
      153370., 155860., 158350., 160840., 178840., 181840., 184840., 187840.,
      202538., 206052., 209566., 213080., 204078., 207620., 211162., 214704.,
      205618., 209188., 212758., 216328., 170656., 173728., 176800., 179872.,
      137530., 140100., 142670., 145240., 106256., 108320., 110384., 112448.,
      376320., 378880., 381440., 384000., 465490., 468700., 471910., 475120.,
      552664., 556528., 560392., 564256., 637826., 642348., 646870., 651392.,
      641718., 646268., 650818., 655368., 645610., 650188., 654766., 659344.,
      547072., 551008., 554944., 558880., 450610., 453900., 457190., 460480.,
      356240., 358880., 361520., 364160., 441170., 444460., 447750., 451040.,
      544925., 549050., 553175., 557300., 646025., 650990., 655955., 660920.,
      744450., 750260., 756070., 761880., 748825., 754670., 760515., 766360.,
      753200., 759080., 764960., 770840., 637235., 642290., 647345., 652400.,
      524025., 528250., 532475., 536700., 413590., 416980., 420370., 423760.,
      492312., 496368., 500424., 504480., 607065., 612150., 617235., 622320.,
      718440., 724560., 730680., 736800., 826413., 833574., 840735., 847896.,
      831075., 838278., 845481., 852684., 835737., 842982., 850227., 857472.,
      705732., 711960., 718188., 724416., 579225., 584430., 589635., 594840.,
      456240., 460416., 464592., 468768., 528738., 533596., 538454., 543312.,
      650650., 656740., 662830., 668920., 768397., 775726., 783055., 790384.,
      881951., 890526., 899101., 907676., 886704., 895328., 903952., 912576.,
      891457., 900130., 908803., 917476., 751051., 758506., 765961., 773416.,
      614950., 621180., 627410., 633640., 483182., 488180., 493178., 498176.,
      554694., 559804., 564914., 570024., 682465., 688870., 695275., 701680.,
      805819., 813526., 821233., 828940., 924728., 933744., 942760., 951776.,
      929481., 938546., 947611., 956676., 934234., 943348., 952462., 961576.,
      786961., 794794., 802627., 810460., 644245., 650790., 657335., 663880.,
      506114., 511364., 516614., 521864., 417192., 421680., 426168., 430656.,
      511665., 517290., 522915., 528540., 602160., 608928., 615696., 622464.,
      688653., 696570., 704487., 712404., 692139., 700098., 708057., 716016.,
      695625., 703626., 711627., 719628., 583836., 590712., 597588., 604464.,
      476145., 481890., 487635., 493380., 372576., 377184., 381792., 386400.,
      297430., 301260., 305090., 308920., 363200., 368000., 372800., 377600.,
      425495., 431270., 437045., 442820., 484295., 491050., 497805., 504560.,
      486710., 493500., 500290., 507080., 489125., 495950., 502775., 509600.,
      408425., 414290., 420155., 426020., 331300., 336200., 341100., 346000.,
      257770., 261700., 265630., 269560., 196416., 199552., 202688., 205824.,
      238330., 242260., 246190., 250120., 277336., 282064., 286792., 291520.,
      313418., 318948., 324478., 330008., 314958., 320516., 326074., 331632.,
      316498., 322084., 327670., 333256., 262240., 267040., 271840., 276640.,
      210970., 214980., 218990., 223000., 162704., 165920., 169136., 172352.};
  const std::array<int, 4> in_shape = {{3, 8, 9, 1}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x8x9x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      197519., 199038., 200557., 202076., 202272., 203840., 205408., 206976.,
      207025., 208642., 210259., 211876., 240296., 242256., 244216., 246176.,
      245049., 247058., 249067., 251076., 249802., 251860., 253918., 255976.,
      539735., 544782., 549829., 554876., 544488., 549584., 554680., 559776.,
      549241., 554386., 559531., 564676., 582512., 588000., 593488., 598976.,
      587265., 592802., 598339., 603876., 592018., 597604., 603190., 608776.,
      881951., 890526., 899101., 907676., 886704., 895328., 903952., 912576.,
      891457., 900130., 908803., 917476., 924728., 933744., 942760., 951776.,
      929481., 938546., 947611., 956676., 934234., 943348., 952462., 961576.};
  const std::array<int, 4> in_shape = {{3, 8, 9, 1}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x8x9x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      84336.,   107180.,  130664.,  154756.,  162652.,  170548.,  147464.,
      123900.,  99888.,   128100.,  161525.,  195430.,  229775.,  238665.,
      247555.,  212830.,  177825.,  142580.,  176904.,  221850.,  266988.,
      312270.,  321762.,  331254.,  283548.,  235890.,  188328.,  228732.,
      285635.,  342314.,  398713.,  408415.,  418117.,  356594.,  295575.,
      235116.,  281652.,  350525.,  418670.,  486031.,  495733.,  505435.,
      429926.,  355425.,  281988.,  222264.,  275550.,  327828.,  379050.,
      386190.,  393330.,  333156.,  274230.,  216600.,  165900.,  204675.,
      242290.,  278705.,  283675.,  288645.,  243130.,  198975.,  156220.,
      114576.,  140420.,  165080.,  188524.,  191716.,  194908.,  162872.,
      132180.,  102864.,  423024.,  524780.,  624872.,  723268.,  731164.,
      739060.,  627848.,  518460.,  410928.,  511140.,  633125.,  752710.,
      869855.,  878745.,  887635.,  752830.,  620625.,  491060.,  588168.,
      727290.,  863148.,  995694.,  1005186., 1014678., 858972.,  706770.,
      558120.,  652092.,  804755.,  953162.,  1097257., 1106959., 1116661.,
      943250.,  774375.,  610092.,  705012.,  869645.,  1029518., 1184575.,
      1194277., 1203979., 1016582., 834225.,  656964.,  536760.,  660030.,
      778836.,  893130.,  900270.,  907410.,  763428.,  624150.,  489624.,
      387660.,  474675.,  557650.,  636545.,  641515.,  646485.,  541210.,
      440175.,  343420.,  259728.,  316100.,  368984.,  418348.,  421540.,
      424732.,  352952.,  284820.,  220368.,  761712.,  942380.,  1119080.,
      1291780., 1299676., 1307572., 1108232., 913020.,  721968.,  894180.,
      1104725., 1309990., 1509935., 1518825., 1527715., 1292830., 1063425.,
      839540.,  999432.,  1232730., 1459308., 1679118., 1688610., 1698102.,
      1434396., 1177650., 927912.,  1075452., 1323875., 1564010., 1795801.,
      1805503., 1815205., 1529906., 1253175., 985068.,  1128372., 1388765.,
      1640366., 1883119., 1892821., 1902523., 1603238., 1313025., 1031940.,
      851256.,  1044510., 1229844., 1407210., 1414350., 1421490., 1193700.,
      974070.,  762648.,  609420.,  744675.,  873010.,  994385.,  999355.,
      1004325., 839290.,  681375.,  530620.,  404880.,  491780.,  572888.,
      648172.,  651364.,  654556.,  543032.,  437460.,  337872.};
  const std::array<int, 4> in_shape = {{3, 8, 9, 2}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x8x9x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      398713.,  408415.,  418117.,  486031.,  495733.,  505435.,
      1097257., 1106959., 1116661., 1184575., 1194277., 1203979.,
      1795801., 1805503., 1815205., 1883119., 1892821., 1902523.};
  const std::array<int, 4> in_shape = {{3, 8, 9, 2}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x8x9x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      167664.,  168672.,  213060.,  214360.,  259720.,  261328.,  307580.,
      309512.,  323260.,  325304.,  338940.,  341096.,  293032.,  294928.,
      246180.,  247800.,  198448.,  199776.,  254580.,  256200.,  320975.,
      323050.,  388310.,  390860.,  456505.,  459550.,  474145.,  477330.,
      491785.,  495110.,  422750.,  425660.,  353175.,  355650.,  283140.,
      285160.,  351432.,  353808.,  440670.,  443700.,  530268.,  533976.,
      620130.,  624540.,  638946.,  643524.,  657762.,  662508.,  562956.,
      567096.,  468270.,  471780.,  373800.,  376656.,  454188.,  457464.,
      567105.,  571270.,  679546.,  684628.,  791399.,  797426.,  810607.,
      816830.,  829815.,  836234.,  707602.,  713188.,  586425.,  591150.,
      466396.,  470232.,  559020.,  563304.,  695625.,  701050.,  830746.,
      837340.,  964271.,  972062.,  983479.,  991466.,  1002687., 1010870.,
      852754.,  859852.,  704865.,  710850.,  559132.,  563976.,  440424.,
      444528.,  545910.,  551100.,  649356.,  655656.,  750666.,  758100.,
      764778.,  772380.,  778890.,  786660.,  659580.,  666312.,  542790.,
      548460.,  428616.,  433200.,  328020.,  331800.,  404575.,  409350.,
      478790.,  484580.,  550585.,  557410.,  560385.,  567350.,  570185.,
      577290.,  480110.,  486260.,  392775.,  397950.,  308260.,  312440.,
      225840.,  229152.,  276660.,  280840.,  325096.,  330160.,  371084.,
      377048.,  377356.,  383432.,  383628.,  389816.,  320392.,  325744.,
      259860.,  264360.,  202096.,  205728.,  840432.,  846048.,  1042500.,
      1049560., 1241224., 1249744., 1436540., 1446536., 1452220., 1462328.,
      1467900., 1478120., 1246888., 1255696., 1029540., 1036920., 815920.,
      821856.,  1014900., 1022280., 1256975., 1266250., 1494230., 1505420.,
      1726585., 1739710., 1744225., 1757490., 1761865., 1775270., 1494110.,
      1505660., 1231575., 1241250., 974340.,  982120.,  1167048., 1176336.,
      1442910., 1454580., 1712220., 1726296., 1974882., 1991388., 1993698.,
      2010372., 2012514., 2029356., 1703436., 1717944., 1401390., 1413540.,
      1106472., 1116240., 1292844., 1304184., 1595265., 1609510., 1889146.,
      1906324., 2174375., 2194514., 2193583., 2213918., 2212791., 2233322.,
      1868818., 1886500., 1533945., 1548750., 1208284., 1220184., 1397676.,
      1410024., 1723785., 1739290., 2040346., 2059036., 2347247., 2369150.,
      2366455., 2388554., 2385663., 2407958., 2013970., 2033164., 1652385.,
      1668450., 1301020., 1313928., 1062504., 1073520., 1306230., 1320060.,
      1541004., 1557672., 1766730., 1786260., 1780842., 1800540., 1794954.,
      1814820., 1509756., 1526856., 1233990., 1248300., 967752.,  979248.,
      765780.,  775320.,  937375.,  949350.,  1100870., 1115300., 1256185.,
      1273090., 1265985., 1283030., 1275785., 1292970., 1067630., 1082420.,
      867975.,  880350.,  676900.,  686840.,  511536.,  519456.,  622260.,
      632200.,  725992.,  737968.,  822668.,  836696.,  828940.,  843080.,
      835212.,  849464.,  693640.,  705904.,  559380.,  569640.,  432496.,
      440736.,  1513200., 1523424., 1871940., 1884760., 2222728., 2238160.,
      2565500., 2583560., 2581180., 2599352., 2596860., 2615144., 2200744.,
      2216464., 1812900., 1826040., 1433392., 1443936., 1775220., 1788360.,
      2192975., 2209450., 2600150., 2619980., 2996665., 3019870., 3014305.,
      3037650., 3031945., 3055430., 2565470., 2585660., 2109975., 2126850.,
      1665540., 1679080., 1982664., 1998864., 2445150., 2465460., 2894172.,
      2918616., 3329634., 3358236., 3348450., 3377220., 3367266., 3396204.,
      2843916., 2868792., 2334510., 2355300., 1839144., 1855824., 2131500.,
      2150904., 2623425., 2647750., 3098746., 3128020., 3557351., 3591602.,
      3576559., 3611006., 3595767., 3630410., 3030034., 3059812., 2481465.,
      2506350., 1950172., 1970136., 2236332., 2256744., 2751945., 2777530.,
      3249946., 3280732., 3730223., 3766238., 3749431., 3785642., 3768639.,
      3805046., 3175186., 3206476., 2599905., 2626050., 2042908., 2063880.,
      1684584., 1702512., 2066550., 2089020., 2432652., 2459688., 2782794.,
      2814420., 2796906., 2828700., 2811018., 2842980., 2359932., 2387400.,
      1925190., 1948140., 1506888., 1525296., 1203540., 1218840., 1470175.,
      1489350., 1722950., 1746020., 1961785., 1988770., 1971585., 1998710.,
      1981385., 2008650., 1655150., 1678580., 1343175., 1362750., 1045540.,
      1061240., 797232.,  809760.,  967860.,  983560.,  1126888., 1145776.,
      1274252., 1296344., 1280524., 1302728., 1286796., 1309112., 1066888.,
      1086064., 858900.,  874920.,  662896.,  675744.};
  const std::array<int, 4> in_shape = {{3, 8, 9, 2}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x8x9x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      791399.,  797426.,  810607.,  816830.,  829815.,  836234.,
      964271.,  972062.,  983479.,  991466.,  1002687., 1010870.,
      2174375., 2194514., 2193583., 2213918., 2212791., 2233322.,
      2347247., 2369150., 2366455., 2388554., 2385663., 2407958.,
      3557351., 3591602., 3576559., 3611006., 3595767., 3630410.,
      3730223., 3766238., 3749431., 3785642., 3768639., 3805046.};
  const std::array<int, 4> in_shape = {{3, 8, 9, 2}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x8x9x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      334320.,  335328.,  336336.,  337344.,  424820.,  426120.,  427420.,
      428720.,  517832.,  519440.,  521048.,  522656.,  613228.,  615160.,
      617092.,  619024.,  644476.,  646520.,  648564.,  650608.,  675724.,
      677880.,  680036.,  682192.,  584168.,  586064.,  587960.,  589856.,
      490740.,  492360.,  493980.,  495600.,  395568.,  396896.,  398224.,
      399552.,  507540.,  509160.,  510780.,  512400.,  639875.,  641950.,
      644025.,  646100.,  774070.,  776620.,  779170.,  781720.,  909965.,
      913010.,  916055.,  919100.,  945105.,  948290.,  951475.,  954660.,
      980245.,  983570.,  986895.,  990220.,  842590.,  845500.,  848410.,
      851320.,  703875.,  706350.,  708825.,  711300.,  564260.,  566280.,
      568300.,  570320.,  700488.,  702864.,  705240.,  707616.,  878310.,
      881340.,  884370.,  887400.,  1056828., 1060536., 1064244., 1067952.,
      1235850., 1240260., 1244670., 1249080., 1273314., 1277892., 1282470.,
      1287048., 1310778., 1315524., 1320270., 1325016., 1121772., 1125912.,
      1130052., 1134192., 933030.,  936540.,  940050.,  943560.,  744744.,
      747600.,  750456.,  753312.,  905100.,  908376.,  911652.,  914928.,
      1130045., 1134210., 1138375., 1142540., 1354010., 1359092., 1364174.,
      1369256., 1576771., 1582798., 1588825., 1594852., 1614991., 1621214.,
      1627437., 1633660., 1653211., 1659630., 1666049., 1672468., 1409618.,
      1415204., 1420790., 1426376., 1168125., 1172850., 1177575., 1182300.,
      928956.,  932792.,  936628.,  940464.,  1113756., 1118040., 1122324.,
      1126608., 1385825., 1391250., 1396675., 1402100., 1654898., 1661492.,
      1668086., 1674680., 1920751., 1928542., 1936333., 1944124., 1958971.,
      1966958., 1974945., 1982932., 1997191., 2005374., 2013557., 2021740.,
      1698410., 1705508., 1712606., 1719704., 1403745., 1409730., 1415715.,
      1421700., 1113420., 1118264., 1123108., 1127952., 876744.,  880848.,
      884952.,  889056.,  1086630., 1091820., 1097010., 1102200., 1292412.,
      1298712., 1305012., 1311312., 1493898., 1501332., 1508766., 1516200.,
      1521954., 1529556., 1537158., 1544760., 1550010., 1557780., 1565550.,
      1573320., 1312428., 1319160., 1325892., 1332624., 1079910., 1085580.,
      1091250., 1096920., 852648.,  857232.,  861816.,  866400.,  652260.,
      656040.,  659820.,  663600.,  804375.,  809150.,  813925.,  818700.,
      951790.,  957580.,  963370.,  969160.,  1094345., 1101170., 1107995.,
      1114820., 1113805., 1120770., 1127735., 1134700., 1133265., 1140370.,
      1147475., 1154580., 954070.,  960220.,  966370.,  972520.,  780375.,
      785550.,  790725.,  795900.,  612340.,  616520.,  620700.,  624880.,
      448368.,  451680.,  454992.,  458304.,  549140.,  553320.,  557500.,
      561680.,  645128.,  650192.,  655256.,  660320.,  736204.,  742168.,
      748132.,  754096.,  748636.,  754712.,  760788.,  766864.,  761068.,
      767256.,  773444.,  779632.,  635432.,  640784.,  646136.,  651488.,
      515220.,  519720.,  524220.,  528720.,  400560.,  404192.,  407824.,
      411456.,  1675248., 1680864., 1686480., 1692096., 2077940., 2085000.,
      2092060., 2099120., 2473928., 2482448., 2490968., 2499488., 2863084.,
      2873080., 2883076., 2893072., 2894332., 2904440., 2914548., 2924656.,
      2925580., 2935800., 2946020., 2956240., 2484968., 2493776., 2502584.,
      2511392., 2051700., 2059080., 2066460., 2073840., 1625904., 1631840.,
      1637776., 1643712., 2022420., 2029800., 2037180., 2044560., 2504675.,
      2513950., 2523225., 2532500., 2977270., 2988460., 2999650., 3010840.,
      3440045., 3453170., 3466295., 3479420., 3475185., 3488450., 3501715.,
      3514980., 3510325., 3523730., 3537135., 3550540., 2976670., 2988220.,
      2999770., 3011320., 2453475., 2463150., 2472825., 2482500., 1940900.,
      1948680., 1956460., 1964240., 2324808., 2334096., 2343384., 2352672.,
      2874150., 2885820., 2897490., 2909160., 3410364., 3424440., 3438516.,
      3452592., 3933258., 3949764., 3966270., 3982776., 3970722., 3987396.,
      4004070., 4020744., 4008186., 4025028., 4041870., 4058712., 3392364.,
      3406872., 3421380., 3435888., 2790630., 2802780., 2814930., 2827080.,
      2203176., 2212944., 2222712., 2232480., 2574348., 2585688., 2597028.,
      2608368., 3176285., 3190530., 3204775., 3219020., 3761114., 3778292.,
      3795470., 3812648., 4328611., 4348750., 4368889., 4389028., 4366831.,
      4387166., 4407501., 4427836., 4405051., 4425582., 4446113., 4466644.,
      3719954., 3737636., 3755318., 3773000., 3053085., 3067890., 3082695.,
      3097500., 2404668., 2416568., 2428468., 2440368., 2783004., 2795352.,
      2807700., 2820048., 3432065., 3447570., 3463075., 3478580., 4062002.,
      4080692., 4099382., 4118072., 4672591., 4694494., 4716397., 4738300.,
      4710811., 4732910., 4755009., 4777108., 4749031., 4771326., 4793621.,
      4815916., 4008746., 4027940., 4047134., 4066328., 3288705., 3304770.,
      3320835., 3336900., 2589132., 2602040., 2614948., 2627856., 2113992.,
      2125008., 2136024., 2147040., 2598630., 2612460., 2626290., 2640120.,
      3065340., 3082008., 3098676., 3115344., 3513930., 3533460., 3552990.,
      3572520., 3541986., 3561684., 3581382., 3601080., 3570042., 3589908.,
      3609774., 3629640., 3002412., 3019512., 3036612., 3053712., 2453670.,
      2467980., 2482290., 2496600., 1924008., 1935504., 1947000., 1958496.,
      1522020., 1531560., 1541100., 1550640., 1862775., 1874750., 1886725.,
      1898700., 2187310., 2201740., 2216170., 2230600., 2495465., 2512370.,
      2529275., 2546180., 2514925., 2531970., 2549015., 2566060., 2534385.,
      2551570., 2568755., 2585940., 2120470., 2135260., 2150050., 2164840.,
      1723575., 1735950., 1748325., 1760700., 1343860., 1353800., 1363740.,
      1373680., 1015152., 1023072., 1030992., 1038912., 1234580., 1244520.,
      1254460., 1264400., 1440008., 1451984., 1463960., 1475936., 1631308.,
      1645336., 1659364., 1673392., 1643740., 1657880., 1672020., 1686160.,
      1656172., 1670424., 1684676., 1698928., 1375016., 1387280., 1399544.,
      1411808., 1108500., 1118760., 1129020., 1139280., 856752.,  864992.,
      873232.,  881472.,  3016176., 3026400., 3036624., 3046848., 3731060.,
      3743880., 3756700., 3769520., 4430024., 4445456., 4460888., 4476320.,
      5112940., 5131000., 5149060., 5167120., 5144188., 5162360., 5180532.,
      5198704., 5175436., 5193720., 5212004., 5230288., 4385768., 4401488.,
      4417208., 4432928., 3612660., 3625800., 3638940., 3652080., 2856240.,
      2866784., 2877328., 2887872., 3537300., 3550440., 3563580., 3576720.,
      4369475., 4385950., 4402425., 4418900., 5180470., 5200300., 5220130.,
      5239960., 5970125., 5993330., 6016535., 6039740., 6005265., 6028610.,
      6051955., 6075300., 6040405., 6063890., 6087375., 6110860., 5110750.,
      5130940., 5151130., 5171320., 4203075., 4219950., 4236825., 4253700.,
      3317540., 3331080., 3344620., 3358160., 3949128., 3965328., 3981528.,
      3997728., 4869990., 4890300., 4910610., 4930920., 5763900., 5788344.,
      5812788., 5837232., 6630666., 6659268., 6687870., 6716472., 6668130.,
      6696900., 6725670., 6754440., 6705594., 6734532., 6763470., 6792408.,
      5662956., 5687832., 5712708., 5737584., 4648230., 4669020., 4689810.,
      4710600., 3661608., 3678288., 3694968., 3711648., 4243596., 4263000.,
      4282404., 4301808., 5222525., 5246850., 5271175., 5295500., 6168218.,
      6197492., 6226766., 6256040., 7080451., 7114702., 7148953., 7183204.,
      7118671., 7153118., 7187565., 7222012., 7156891., 7191534., 7226177.,
      7260820., 6030290., 6060068., 6089846., 6119624., 4938045., 4962930.,
      4987815., 5012700., 3880380., 3900344., 3920308., 3940272., 4452252.,
      4472664., 4493076., 4513488., 5478305., 5503890., 5529475., 5555060.,
      6469106., 6499892., 6530678., 6561464., 7424431., 7460446., 7496461.,
      7532476., 7462651., 7498862., 7535073., 7571284., 7500871., 7537278.,
      7573685., 7610092., 6319082., 6350372., 6381662., 6412952., 5173665.,
      5199810., 5225955., 5252100., 4064844., 4085816., 4106788., 4127760.,
      3351240., 3369168., 3387096., 3405024., 4110630., 4133100., 4155570.,
      4178040., 4838268., 4865304., 4892340., 4919376., 5533962., 5565588.,
      5597214., 5628840., 5562018., 5593812., 5625606., 5657400., 5590074.,
      5622036., 5653998., 5685960., 4692396., 4719864., 4747332., 4774800.,
      3827430., 3850380., 3873330., 3896280., 2995368., 3013776., 3032184.,
      3050592., 2391780., 2407080., 2422380., 2437680., 2921175., 2940350.,
      2959525., 2978700., 3422830., 3445900., 3468970., 3492040., 3896585.,
      3923570., 3950555., 3977540., 3916045., 3943170., 3970295., 3997420.,
      3935505., 3962770., 3990035., 4017300., 3286870., 3310300., 3333730.,
      3357160., 2666775., 2686350., 2705925., 2725500., 2075380., 2091080.,
      2106780., 2122480., 1581936., 1594464., 1606992., 1619520., 1920020.,
      1935720., 1951420., 1967120., 2234888., 2253776., 2272664., 2291552.,
      2526412., 2548504., 2570596., 2592688., 2538844., 2561048., 2583252.,
      2605456., 2551276., 2573592., 2595908., 2618224., 2114600., 2133776.,
      2152952., 2172128., 1701780., 1717800., 1733820., 1749840., 1312944.,
      1325792., 1338640., 1351488.};
  const std::array<int, 4> in_shape = {{3, 8, 9, 2}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x8x9x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1576771., 1582798., 1588825., 1594852., 1614991., 1621214., 1627437.,
      1633660., 1653211., 1659630., 1666049., 1672468., 1920751., 1928542.,
      1936333., 1944124., 1958971., 1966958., 1974945., 1982932., 1997191.,
      2005374., 2013557., 2021740., 4328611., 4348750., 4368889., 4389028.,
      4366831., 4387166., 4407501., 4427836., 4405051., 4425582., 4446113.,
      4466644., 4672591., 4694494., 4716397., 4738300., 4710811., 4732910.,
      4755009., 4777108., 4749031., 4771326., 4793621., 4815916., 7080451.,
      7114702., 7148953., 7183204., 7118671., 7153118., 7187565., 7222012.,
      7156891., 7191534., 7226177., 7260820., 7424431., 7460446., 7496461.,
      7532476., 7462651., 7498862., 7535073., 7571284., 7500871., 7537278.,
      7573685., 7610092.};
  const std::array<int, 4> in_shape = {{3, 8, 9, 2}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x8x9x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      668000.,   849080.,   1035280.,  1226344.,  1289288.,  1352232.,
      1169296.,  982520.,   792160.,   1016280.,  1281550.,  1550660.,
      1823290.,  1894130.,  1964970.,  1689380.,  1411550.,  1131800.,
      1404816.,  1761780.,  2120280.,  2479932.,  2555532.,  2631132.,
      2252184.,  1873620.,  1495824.,  1817480.,  2269610.,  2719948.,
      3168046.,  3245270.,  3322494.,  2833516.,  2348570.,  1868104.,
      2238824.,  2786210.,  3327772.,  3863062.,  3940286.,  4017510.,
      3417148.,  2824850.,  2241064.,  1765584.,  2188740.,  2603832.,
      3010476.,  3067260.,  3124044.,  2645880.,  2177700.,  1719888.,
      1316600.,  1624150.,  1922420.,  2211090.,  2250570.,  2290050.,
      1928660.,  1578150.,  1238840.,  908000.,   1112600.,  1307728.,
      1493128.,  1518440.,  1543752.,  1289680.,  1046360.,  814048.,
      3368288.,  4178360.,  4975120.,  5758312.,  5821256.,  5884200.,
      4998544.,  4127480.,  3271264.,  4069080.,  5039950.,  5991620.,
      6923770.,  6994610.,  7065450.,  5992100.,  4939550.,  3908120.,
      4681104.,  5788020.,  6868824.,  7923132.,  7998732.,  8074332.,
      6834840.,  5623380.,  4440336.,  5188232.,  6402410.,  7582540.,
      8728174.,  8805398.,  8882622.,  7502572.,  6158810.,  4851784.,
      5609576.,  6919010.,  8190364.,  9423190.,  9500414.,  9577638.,
      8086204.,  6635090.,  5224744.,  4267728.,  5247300.,  6191160.,
      7098924.,  7155708.,  7212492.,  6067320.,  4959780.,  3890256.,
      3079160.,  3769750.,  4428020.,  5053650.,  5093130.,  5132610.,
      4296020.,  3493350.,  2724920.,  2060000.,  2506520.,  2925136.,
      3315592.,  3340904.,  3366216.,  2796496.,  2255960.,  1744864.,
      6068576.,  7507640.,  8914960.,  10290280., 10353224., 10416168.,
      8827792.,  7272440.,  5750368.,  7121880.,  8798350.,  10432580.,
      12024250., 12095090., 12165930., 10294820., 8467550.,  6684440.,
      7957392.,  9814260.,  11617368., 13366332., 13441932., 13517532.,
      11417496., 9373140.,  7384848.,  8558984.,  10535210., 12445132.,
      14288302., 14365526., 14442750., 12171628., 9969050.,  7835464.,
      8980328.,  11051810., 13052956., 14983318., 15060542., 15137766.,
      12755260., 10445330., 8208424.,  6769872.,  8305860.,  9778488.,
      11187372., 11244156., 11300940., 9488760.,  7741860.,  6060624.,
      4841720.,  5915350.,  6933620.,  7896210.,  7935690.,  7975170.,
      6663380.,  5408550.,  4211000.,  3212000.,  3900440.,  4542544.,
      5138056.,  5163368.,  5188680.,  4303312.,  3465560.,  2675680.};
  const std::array<int, 4> in_shape = {{3, 8, 9, 4}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x8x9x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3168046.,  3245270.,  3322494.,  3863062.,  3940286.,  4017510.,
      8728174.,  8805398.,  8882622.,  9423190.,  9500414.,  9577638.,
      14288302., 14365526., 14442750., 14983318., 15060542., 15137766.};
  const std::array<int, 4> in_shape = {{3, 8, 9, 4}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x8x9x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1332000.,  1336000.,  1693000.,  1698160.,  2064176.,  2070560.,
      2445016.,  2452688.,  2570456.,  2578576.,  2695896.,  2704464.,
      2331056.,  2338592.,  1958600.,  1965040.,  1579040.,  1584320.,
      2026120.,  2032560.,  2554850.,  2563100.,  3091180.,  3101320.,
      3634470.,  3646580.,  3775590.,  3788260.,  3916710.,  3929940.,
      3367180.,  3378760.,  2813250.,  2823100.,  2255560.,  2263600.,
      2800176.,  2809632.,  3511500.,  3523560.,  4225800.,  4240560.,
      4942308.,  4959864.,  5092836.,  5111064.,  5243364.,  5262264.,
      4487880.,  4504368.,  3733260.,  3747240.,  2980272.,  2991648.,
      3621912.,  3634960.,  4522630.,  4539220.,  5419652.,  5439896.,
      6312082.,  6336092.,  6465746.,  6490540.,  6619410.,  6644988.,
      5644772.,  5667032.,  4678310.,  4697140.,  3720920.,  3736208.,
      4460568.,  4477648.,  5550790.,  5572420.,  6629252.,  6655544.,
      7695058.,  7726124.,  7848722.,  7880572.,  8002386.,  8035020.,
      6805988.,  6834296.,  5625830.,  5649700.,  4462808.,  4482128.,
      3514800.,  3531168.,  4356780.,  4377480.,  5182536.,  5207664.,
      5991300.,  6020952.,  6104196.,  6134520.,  6217092.,  6248088.,
      5264904.,  5291760.,  4332780.,  4355400.,  3421488.,  3439776.,
      2618120.,  2633200.,  3229250.,  3248300.,  3821740.,  3844840.,
      4394950.,  4422180.,  4473350.,  4501140.,  4551750.,  4580100.,
      3832780.,  3857320.,  3135650.,  3156300.,  2461000.,  2477680.,
      1802784.,  1816000.,  2208520.,  2225200.,  2595248.,  2615456.,
      2962456.,  2986256.,  3012632.,  3036880.,  3062808.,  3087504.,
      2558000.,  2579360.,  2074760.,  2092720.,  1613600.,  1628096.,
      6714144.,  6736576.,  8328520.,  8356720.,  9916208.,  9950240.,
      11476696., 11516624., 11602136., 11642512., 11727576., 11768400.,
      9961904.,  9997088.,  8225480.,  8254960.,  6518816.,  6542528.,
      8108680.,  8138160.,  10042850., 10079900., 11938540., 11983240.,
      13795110., 13847540., 13936230., 13989220., 14077350., 14130900.,
      11938060., 11984200., 9840450.,  9879100.,  7785160.,  7816240.,
      9325104.,  9362208.,  11529420., 11576040., 13681416., 13737648.,
      15780324., 15846264., 15930852., 15997464., 16081380., 16148664.,
      13611720., 13669680., 11198220., 11246760., 8841648.,  8880672.,
      8758296.,  8799504.,  10413190., 10463956., 12016260., 12076696.,
      13566610., 13636828., 13007570., 13076524., 12464914., 12532604.,
      10510820., 10569176., 8613030.,  8661940.,  6772440.,  6811792.,
      6746136.,  6783184.,  7976134.,  8021700.,  9162628.,  9216824.,
      10304722., 10367660., 9860370.,  9922044.,  9432402.,  9492812.,
      7936484.,  7988600.,  6488550.,  6532260.,  5089496.,  5124688.,
      4755888.,  4787616.,  5556908.,  5595784.,  6319176.,  6365296.,
      7041924.,  7095384.,  6671492.,  6723576.,  6317444.,  6368152.,
      5283336.,  5327088.,  4291820.,  4328520.,  3343664.,  3373216.,
      3072776.,  3098608.,  3526722.,  3558188.,  3948716.,  3985896.,
      4338118.,  4381092.,  4047878.,  4089364.,  3774022.,  3814020.,
      3126220.,  3160744.,  2513570.,  2542540.,  1936712.,  1960048.,
      1729056.,  1748416.,  1925896.,  1949232.,  2099632.,  2127008.,
      2249752.,  2281232.,  2045976.,  2075856.,  1858584.,  1886864.,
      1513520.,  1537952.,  1194120.,  1214640.,  900896.,   917440.,
      2528032.,  2536128.,  3167560.,  3177840.,  3809072.,  3821600.,
      4452056.,  4466896.,  4577496.,  4592784.,  4702936.,  4718672.,
      4026800.,  4040480.,  3351240.,  3362800.,  2676768.,  2686144.,
      3377800.,  3389360.,  4218850.,  4233500.,  5057260.,  5075080.,
      5892390.,  5913460.,  6033510.,  6055140.,  6174630.,  6196820.,
      5271820.,  5291080.,  4374850.,  4391100.,  3484360.,  3497520.,
      4250160.,  4265760.,  5293260.,  5313000.,  6327048.,  6351024.,
      7350756.,  7379064.,  7501284.,  7530264.,  7651812.,  7681464.,
      6515400.,  6541104.,  5392140.,  5413800.,  4282800.,  4300320.,
      5112856.,  5133072.,  6350470.,  6376020.,  7570052.,  7601048.,
      8770706.,  8807260.,  8924370.,  8961708.,  9078034.,  9116156.,
      7709156.,  7742168.,  6362790.,  6390580.,  5039832.,  5062288.,
      5951512.,  5975760.,  7378630.,  7409220.,  8779652.,  8816696.,
      10153682., 10197292., 10307346., 10351740., 10461010., 10506188.,
      8870372.,  8909432.,  7310310.,  7343140.,  5781720.,  5808208.,
      4620720.,  4643232.,  5708460.,  5736840.,  6767688.,  6802032.,
      7797636.,  7838040.,  7910532.,  7951608.,  8023428.,  8065176.,
      6776328.,  6812400.,  5561580.,  5591880.,  4379952.,  4404384.,
      3396360.,  3416560.,  4176450.,  4201900.,  4927660.,  4958440.,
      5649350.,  5685540.,  5727750.,  5764500.,  5806150.,  5843460.,
      4877260.,  4909480.,  3980450.,  4007500.,  3116360.,  3138160.,
      2310688.,  2328000.,  2822920.,  2844720.,  3307952.,  3334304.,
      3765272.,  3796240.,  3815448.,  3846864.,  3865624.,  3897488.,
      3221552.,  3249056.,  2607240.,  2630320.,  2023200.,  2041792.};
  const std::array<int, 4> in_shape = {{3, 8, 9, 4}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x8x9x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6312082.,  6336092.,  6465746.,  6490540.,  6619410.,  6644988.,
      7695058.,  7726124.,  7848722.,  7880572.,  8002386.,  8035020.,
      13566610., 13636828., 13007570., 13076524., 12464914., 12532604.,
      10304722., 10367660., 9860370.,  9922044.,  9432402.,  9492812.,
      8770706.,  8807260.,  8924370.,  8961708.,  9078034.,  9116156.,
      10153682., 10197292., 10307346., 10351740., 10461010., 10506188.};
  const std::array<int, 4> in_shape = {{3, 8, 9, 4}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x8x9x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      760480.,   764480.,   768480.,   772480.,   1012328.,  1017488.,
      1022648.,  1027808.,  1268080.,  1274464.,  1280848.,  1287232.,
      1526712.,  1534384.,  1542056.,  1549728.,  1637880.,  1646000.,
      1654120.,  1662240.,  1749048.,  1757616.,  1766184.,  1774752.,
      1560048.,  1567584.,  1575120.,  1582656.,  1380456.,  1386896.,
      1393336.,  1399776.,  1211296.,  1216576.,  1221856.,  1227136.,
      1335272.,  1341712.,  1348152.,  1354592.,  1774474.,  1782724.,
      1790974.,  1799224.,  2212412.,  2222552.,  2232692.,  2242832.,
      2647806.,  2659916.,  2672026.,  2684136.,  2790222.,  2802892.,
      2815562.,  2828232.,  2932638.,  2945868.,  2959098.,  2972328.,
      2596060.,  2607640.,  2619220.,  2630800.,  2275338.,  2285188.,
      2295038.,  2304888.,  1971752.,  1979792.,  1987832.,  1995872.,
      2069360.,  2078816.,  2088272.,  2097728.,  2725500.,  2737560.,
      2749620.,  2761680.,  3371112.,  3385872.,  3400632.,  3415392.,
      4004660.,  4022216.,  4039772.,  4057328.,  4165780.,  4184008.,
      4202236.,  4220464.,  4326900.,  4345800.,  4364700.,  4383600.,
      3800360.,  3816848.,  3833336.,  3849824.,  3300220.,  3314200.,
      3328180.,  3342160.,  2828016.,  2839392.,  2850768.,  2862144.,
      2898232.,  2911280.,  2924328.,  2937376.,  3784766.,  3801356.,
      3817946.,  3834536.,  4647412.,  4667656.,  4687900.,  4708144.,
      5484378.,  5508388.,  5532398.,  5556408.,  5651658.,  5676452.,
      5701246.,  5726040.,  5818938.,  5844516.,  5870094.,  5895672.,
      5076180.,  5098440.,  5120700.,  5142960.,  4374462.,  4393292.,
      4412122.,  4430952.,  3715576.,  3730864.,  3746152.,  3761440.,
      3760504.,  3777584.,  3794664.,  3811744.,  4877582.,  4899212.,
      4920842.,  4942472.,  5954644.,  5980936.,  6007228.,  6033520.,
      6989898.,  7020964.,  7052030.,  7083096.,  7157178.,  7189028.,
      7220878.,  7252728.,  7324458.,  7357092.,  7389726.,  7422360.,
      6360372.,  6388680.,  6416988.,  6445296.,  5453454.,  5477324.,
      5501194.,  5525064.,  4605496.,  4624816.,  4644136.,  4663456.,
      3487600.,  3503968.,  3520336.,  3536704.,  4588668.,  4609368.,
      4630068.,  4650768.,  5649000.,  5674128.,  5699256.,  5724384.,
      6667060.,  6696712.,  6726364.,  6756016.,  6810260.,  6840584.,
      6870908.,  6901232.,  6953460.,  6984456.,  7015452.,  7046448.,
      6087464.,  6114320.,  6141176.,  6168032.,  5278076.,  5300696.,
      5323316.,  5345936.,  4526832.,  4545120.,  4563408.,  4581696.,
      3608360.,  3623440.,  3638520.,  3653600.,  4802074.,  4821124.,
      4840174.,  4859224.,  5958428.,  5981528.,  6004628.,  6027728.,
      7076142.,  7103372.,  7130602.,  7157832.,  7207806.,  7235596.,
      7263386.,  7291176.,  7339470.,  7367820.,  7396170.,  7424520.,
      6475708.,  6500248.,  6524788.,  6549328.,  5663898.,  5684548.,
      5705198.,  5725848.,  4905320.,  4922000.,  4938680.,  4955360.,
      3592352.,  3605568.,  3618784.,  3632000.,  4400360.,  4417040.,
      4433720.,  4450400.,  5170288.,  5190496.,  5210704.,  5230912.,
      5901112.,  5924912.,  5948712.,  5972512.,  6001016.,  6025264.,
      6049512.,  6073760.,  6100920.,  6125616.,  6150312.,  6175008.,
      5094640.,  5116000.,  5137360.,  5158720.,  4131560.,  4149520.,
      4167480.,  4185440.,  3212704.,  3227200.,  3241696.,  3256192.,
      5018272.,  5040704.,  5063136.,  5085568.,  6592616.,  6620816.,
      6649016.,  6677216.,  8097136.,  8131168.,  8165200.,  8199232.,
      9530808.,  9570736.,  9610664.,  9650592.,  9641976.,  9682352.,
      9722728.,  9763104.,  9753144.,  9793968.,  9834792.,  9875616.,
      8536560.,  8571744.,  8606928.,  8642112.,  7403112.,  7432592.,
      7462072.,  7491552.,  6353824.,  6377536.,  6401248.,  6424960.,
      6989288.,  7018768.,  7048248.,  7077728.,  9053962.,  9091012.,
      9128062.,  9165112.,  11025212., 11069912., 11114612., 11159312.,
      12901758., 12954188., 13006618., 13059048., 13044174., 13097164.,
      13150154., 13203144., 13186590., 13240140., 13293690., 13347240.,
      11445724., 11491864., 11538004., 11584144., 9812874.,  9851524.,
      9890174.,  9928824.,  8289320.,  8320400.,  8351480.,  8382560.,
      8603504.,  8640608.,  8677712.,  8714816.,  11059068., 11105688.,
      11152308., 11198928., 13393512., 13449744., 13505976., 13562208.,
      15605300., 15671240., 15737180., 15803120., 15766420., 15833032.,
      15899644., 15966256., 15927540., 15994824., 16062108., 16129392.,
      13749032., 13806992., 13864952., 13922912., 11707516., 11756056.,
      11804596., 11853136., 9804528.,  9843552.,  9882576.,  9921600.,
      8751928.,  8793136.,  8834344.,  8875552.,  11009726., 11060492.,
      11111258., 11162024., 13147380., 13207816., 13268252., 13328688.,
      15163098., 15233316., 15303534., 15373752., 14955594., 15024548.,
      15093502., 15162456., 14780858., 14848548., 14916238., 14983928.,
      12806100., 12864456., 12922812., 12981168., 10968638., 11017548.,
      11066458., 11115368., 9270264.,  9309616.,  9348968.,  9388320.,
      8115064.,  8152112.,  8189160.,  8226208.,  10425230., 10470796.,
      10516362., 10561928., 12631892., 12686088., 12740284., 12794480.,
      14733258., 14796196., 14859134., 14922072., 14755130., 14816804.,
      14878478., 14940152., 14809770., 14870180., 14930590., 14991000.,
      12922932., 12975048., 13027164., 13079280., 11156750., 11200460.,
      11244170., 11287880., 9513016.,  9548208.,  9583400.,  9618592.,
      8117104.,  8148832.,  8180560.,  8212288.,  10640764., 10679640.,
      10718516., 10757392., 12030056., 12076176., 12122296., 12168416.,
      13332020., 13385480., 13438940., 13492400., 12510612., 12562696.,
      12614780., 12666864., 11721972., 11772680., 11823388., 11874096.,
      9777448.,  9821200.,  9864952.,  9908704.,  7934588.,  7971288.,
      8007988.,  8044688.,  6194928.,  6224480.,  6254032.,  6283584.,
      5883176.,  5909008.,  5934840.,  5960672.,  6760858.,  6792324.,
      6823790.,  6855256.,  7574556.,  7611736.,  7648916.,  7686096.,
      8322990.,  8365964.,  8408938.,  8451912.,  7719422.,  7760908.,
      7802394.,  7843880.,  7148622.,  7188620.,  7228618.,  7268616.,
      5970108.,  6004632.,  6039156.,  6073680.,  4870170.,  4899140.,
      4928110.,  4957080.,  3850088.,  3873424.,  3896760.,  3920096.,
      3438752.,  3458112.,  3477472.,  3496832.,  3828456.,  3851792.,
      3875128.,  3898464.,  4171888.,  4199264.,  4226640.,  4254016.,
      4468024.,  4499504.,  4530984.,  4562464.,  4062072.,  4091952.,
      4121832.,  4151712.,  3688888.,  3717168.,  3745448.,  3773728.,
      3002608.,  3027040.,  3051472.,  3075904.,  2367720.,  2388240.,
      2408760.,  2429280.,  1785248.,  1801792.,  1818336.,  1834880.,
      1706656.,  1714752.,  1722848.,  1730944.,  2252392.,  2262672.,
      2272952.,  2283232.,  2785648.,  2798176.,  2810704.,  2823232.,
      3305400.,  3320240.,  3335080.,  3349920.,  3416568.,  3431856.,
      3447144.,  3462432.,  3527736.,  3543472.,  3559208.,  3574944.,
      3110384.,  3124064.,  3137744.,  3151424.,  2718824.,  2730384.,
      2741944.,  2753504.,  2354080.,  2363456.,  2372832.,  2382208.,
      2591720.,  2603280.,  2614840.,  2626400.,  3392138.,  3406788.,
      3421438.,  3436088.,  4170812.,  4188632.,  4206452.,  4224272.,
      4926462.,  4947532.,  4968602.,  4989672.,  5068878.,  5090508.,
      5112138.,  5133768.,  5211294.,  5233484.,  5255674.,  5277864.,
      4562652.,  4581912.,  4601172.,  4620432.,  3950346.,  3966596.,
      3982846.,  3999096.,  3375656.,  3388816.,  3401976.,  3415136.,
      3521392.,  3536992.,  3552592.,  3568192.,  4577404.,  4597144.,
      4616884.,  4636624.,  5598312.,  5622288.,  5646264.,  5670240.,
      6582580.,  6610888.,  6639196.,  6667504.,  6743700.,  6772680.,
      6801660.,  6830640.,  6904820.,  6934472.,  6964124.,  6993776.,
      6011176.,  6036880.,  6062584.,  6088288.,  5168508.,  5190168.,
      5211828.,  5233488.,  4378352.,  4395872.,  4413392.,  4430912.,
      4431160.,  4451376.,  4471592.,  4491808.,  5727550.,  5753100.,
      5778650.,  5804200.,  6971380.,  7002376.,  7033372.,  7064368.,
      8160858.,  8197412.,  8233966.,  8270520.,  8328138.,  8365476.,
      8402814.,  8440152.,  8495418.,  8533540.,  8571662.,  8609784.,
      7359188.,  7392200.,  7425212.,  7458224.,  6292670.,  6320460.,
      6348250.,  6376040.,  5297656.,  5320112.,  5342568.,  5365024.,
      5293432.,  5317680.,  5341928.,  5366176.,  6820366.,  6850956.,
      6881546.,  6912136.,  8278612.,  8315656.,  8352700.,  8389744.,
      9666378.,  9709988.,  9753598.,  9797208.,  9833658.,  9878052.,
      9922446.,  9966840.,  10000938., 10046116., 10091294., 10136472.,
      8643380.,  8682440.,  8721500.,  8760560.,  7371662.,  7404492.,
      7437322.,  7470152.,  6187576.,  6214064.,  6240552.,  6267040.,
      4775792.,  4798304.,  4820816.,  4843328.,  6235772.,  6264152.,
      6292532.,  6320912.,  7630440.,  7664784.,  7699128.,  7733472.,
      8958260.,  8998664.,  9039068.,  9079472.,  9101460.,  9142536.,
      9183612.,  9224688.,  9244660.,  9286408.,  9328156.,  9369904.,
      8052520.,  8088592.,  8124664.,  8160736.,  6941564.,  6971864.,
      7002164.,  7032464.,  5913328.,  5937760.,  5962192.,  5986624.,
      4766504.,  4786704.,  4806904.,  4827104.,  6296858.,  6322308.,
      6347758.,  6373208.,  7769372.,  7800152.,  7830932.,  7861712.,
      9182766.,  9218956.,  9255146.,  9291336.,  9314430.,  9351180.,
      9387930.,  9424680.,  9446094.,  9483404.,  9520714.,  9558024.,
      8294844.,  8327064.,  8359284.,  8391504.,  7216026.,  7243076.,
      7270126.,  7297176.,  6210920.,  6232720.,  6254520.,  6276320.,
      4604064.,  4621376.,  4638688.,  4656000.,  5624040.,  5645840.,
      5667640.,  5689440.,  6589552.,  6615904.,  6642256.,  6668608.,
      7499576.,  7530544.,  7561512.,  7592480.,  7599480.,  7630896.,
      7662312.,  7693728.,  7699384.,  7731248.,  7763112.,  7794976.,
      6415600.,  6443104.,  6470608.,  6498112.,  5191400.,  5214480.,
      5237560.,  5260640.,  4027808.,  4046400.,  4064992.,  4083584.};
  const std::array<int, 4> in_shape = {{3, 8, 9, 4}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x8x9x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5484378.,  5508388.,  5532398.,  5556408.,  5651658.,  5676452.,
      5701246.,  5726040.,  5818938.,  5844516.,  5870094.,  5895672.,
      6989898.,  7020964.,  7052030.,  7083096.,  7157178.,  7189028.,
      7220878.,  7252728.,  7324458.,  7357092.,  7389726.,  7422360.,
      15163098., 15233316., 15303534., 15373752., 14955594., 15024548.,
      15093502., 15162456., 14780858., 14848548., 14916238., 14983928.,
      14733258., 14796196., 14859134., 14922072., 14755130., 14816804.,
      14878478., 14940152., 14809770., 14870180., 14930590., 14991000.,
      8160858.,  8197412.,  8233966.,  8270520.,  8328138.,  8365476.,
      8402814.,  8440152.,  8495418.,  8533540.,  8571662.,  8609784.,
      9666378.,  9709988.,  9753598.,  9797208.,  9833658.,  9878052.,
      9922446.,  9966840.,  10000938., 10046116., 10091294., 10136472.};
  const std::array<int, 4> in_shape = {{3, 8, 9, 4}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x8x10x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      11780.,  14930.,  18154.,  21448.,  22442.,  23436.,  24430.,  21070.,
      17660.,  14204.,  17900.,  22525.,  27200.,  31920.,  33040.,  34160.,
      35280.,  30275.,  25250.,  20210.,  24730.,  30965.,  37209.,  43456.,
      44653.,  45850.,  47047.,  40215.,  33410.,  26638.,  31990.,  39900.,
      47761.,  55566.,  56791.,  58016.,  59241.,  50470.,  41790.,  33208.,
      39410.,  49000.,  58471.,  67816.,  69041.,  70266.,  71491.,  60760.,
      50190.,  39788.,  31150.,  38585.,  45867.,  52990.,  53893.,  54796.,
      55699.,  47145.,  38780.,  30610.,  23300.,  28725.,  33980.,  39060.,
      39690.,  40320.,  40950.,  34475.,  28200.,  22130.,  16140.,  19770.,
      23230.,  26516.,  26922.,  27328.,  27734.,  23170.,  18800.,  14628.,
      59140.,  73330.,  87274.,  100968., 101962., 102956., 103950., 88270.,
      72860.,  57724.,  71500.,  88525.,  105200., 121520., 122640., 123760.,
      124880., 105875., 87250.,  69010.,  82330.,  101765., 120729., 139216.,
      140413., 141610., 142807., 120855., 99410.,  78478.,  91350.,  112700.,
      133441., 153566., 154791., 156016., 157241., 132790., 108990., 85848.,
      98770.,  121800., 144151., 165816., 167041., 168266., 169491., 143080.,
      117390., 92428.,  75310.,  92585.,  109227., 125230., 126133., 127036.,
      127939., 107625., 87980.,  69010.,  54500.,  66725.,  78380.,  89460.,
      90090.,  90720.,  91350.,  76475.,  62200.,  48530.,  36620.,  44570.,
      52030.,  58996.,  59402.,  59808.,  60214.,  50050.,  40400.,  31268.,
      106500., 131730., 156394., 180488., 181482., 182476., 183470., 155470.,
      128060., 101244., 125100., 154525., 183200., 211120., 212240., 213360.,
      214480., 181475., 149250., 117810., 139930., 172565., 204249., 234976.,
      236173., 237370., 238567., 201495., 165410., 130318., 150710., 185500.,
      219121., 251566., 252791., 254016., 255241., 215110., 176190., 138488.,
      158130., 194600., 229831., 263816., 265041., 266266., 267491., 225400.,
      184590., 145068., 119470., 146585., 172587., 197470., 198373., 199276.,
      200179., 168105., 137180., 107410., 85700.,  104725., 122780., 139860.,
      140490., 141120., 141750., 118475., 96200.,  74930.,  57100.,  69370.,
      80830.,  91476.,  91882.,  92288.,  92694.,  76930.,  62000.,  47908.};
  const std::array<int, 4> in_shape = {{3, 8, 10, 1}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x8x10x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      55566.,  56791.,  58016.,  59241.,  67816.,  69041.,  70266.,  71491.,
      153566., 154791., 156016., 157241., 165816., 167041., 168266., 169491.,
      251566., 252791., 254016., 255241., 263816., 265041., 266266., 267491.};
  const std::array<int, 4> in_shape = {{3, 8, 10, 1}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x8x10x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      23280.,  23560.,  29500.,  29860.,  35864.,  36308.,  42364.,  42896.,
      44324.,  44884.,  46284.,  46872.,  48244.,  48860.,  41600.,  42140.,
      34860.,  35320.,  28032.,  28408.,  35350.,  35800.,  44475.,  45050.,
      53695.,  54400.,  63000.,  63840.,  65205.,  66080.,  67410.,  68320.,
      69615.,  70560.,  59725.,  60550.,  49800.,  50500.,  39850.,  40420.,
      48800.,  49460.,  61090.,  61930.,  73392.,  74418.,  85694.,  86912.,
      88046.,  89306.,  90398.,  91700.,  92750.,  94094.,  79260.,  80430.,
      65830.,  66820.,  52472.,  53276.,  63070.,  63980.,  78645.,  79800.,
      94115.,  95522.,  109466., 111132., 111867., 113582., 114268., 116032.,
      116669., 118482., 99365.,  100940., 82250.,  83580.,  65338.,  66416.,
      77630.,  78820.,  96495.,  98000.,  115115., 116942., 133476., 135632.,
      135877., 138082., 138278., 140532., 140679., 142982., 119525., 121520.,
      98700.,  100380., 78218.,  79576.,  61160.,  62300.,  75730.,  77170.,
      89988.,  91734.,  103922., 105980., 105686., 107786., 107450., 109592.,
      109214., 111398., 92400.,  94290.,  75970.,  77560.,  59936.,  61220.,
      45550.,  46600.,  56125.,  57450.,  66355.,  67960.,  76230.,  78120.,
      77455.,  79380.,  78680.,  80640.,  79905.,  81900.,  67225.,  68950.,
      54950.,  56400.,  43090.,  44260.,  31360.,  32280.,  38380.,  39540.,
      45056.,  46460.,  51380.,  53032.,  52164.,  53844.,  52948.,  54656.,
      53732.,  55468.,  44840.,  46340.,  36340.,  37600.,  28240.,  29256.,
      116720., 118280., 144700., 146660., 172184., 174548., 199164., 201936.,
      201124., 203924., 203084., 205912., 205044., 207900., 174080., 176540.,
      143660., 145720., 113792., 115448., 140950., 143000., 174475., 177050.,
      207295., 210400., 239400., 243040., 241605., 245280., 243810., 247520.,
      246015., 249760., 208525., 211750., 171800., 174500., 135850., 138020.,
      162080., 164660., 200290., 203530., 237552., 241458., 273854., 278432.,
      276206., 280826., 278558., 283220., 280910., 285614., 237660., 241710.,
      195430., 198820., 154232., 156956., 179550., 182700., 221445., 225400.,
      262115., 266882., 301546., 307132., 303947., 309582., 306348., 312032.,
      308749., 314482., 260645., 265580., 213850., 217980., 168378., 171696.,
      194110., 197540., 239295., 243600., 283115., 288302., 325556., 331632.,
      327957., 334082., 330358., 336532., 332759., 338982., 280805., 286160.,
      230300., 234780., 181258., 184856., 147560., 150620., 181330., 185170.,
      213828., 218454., 245042., 250460., 246806., 252266., 248570., 254072.,
      250334., 255878., 210480., 215250., 171970., 175960., 134816., 138020.,
      106350., 109000., 130125., 133450., 152755., 156760., 174230., 178920.,
      175455., 180180., 176680., 181440., 177905., 182700., 148825., 152950.,
      120950., 124400., 94290.,  97060.,  71040.,  73240.,  86380.,  89140.,
      100736., 104060., 114100., 117992., 114884., 118804., 115668., 119616.,
      116452., 120428., 96680.,  100100., 77940.,  80800.,  60240.,  62536.,
      210160., 213000., 259900., 263460., 308504., 312788., 355964., 360976.,
      357924., 362964., 359884., 364952., 361844., 366940., 306560., 310940.,
      252460., 256120., 199552., 202488., 246550., 250200., 304475., 309050.,
      360895., 366400., 415800., 422240., 418005., 424480., 420210., 426720.,
      422415., 428960., 357325., 362950., 293800., 298500., 231850., 235620.,
      275360., 279860., 339490., 345130., 401712., 408498., 462014., 469952.,
      464366., 472346., 466718., 474740., 469070., 477134., 396060., 402990.,
      325030., 330820., 255992., 260636., 296030., 301420., 364245., 371000.,
      430115., 438242., 493626., 503132., 496027., 505582., 498428., 508032.,
      500829., 510482., 421925., 430220., 345450., 352380., 271418., 276976.,
      310590., 316260., 382095., 389200., 451115., 459662., 517636., 527632.,
      520037., 530082., 522438., 532532., 524839., 534982., 442085., 450800.,
      361900., 369180., 284298., 290136., 233960., 238940., 286930., 293170.,
      337668., 345174., 386162., 394940., 387926., 396746., 389690., 398552.,
      391454., 400358., 328560., 336210., 267970., 274360., 209696., 214820.,
      167150., 171400., 204125., 209450., 239155., 245560., 272230., 279720.,
      273455., 280980., 274680., 282240., 275905., 283500., 230425., 236950.,
      186950., 192400., 145490., 149860., 110720., 114200., 134380., 138740.,
      156416., 161660., 176820., 182952., 177604., 183764., 178388., 184576.,
      179172., 185388., 148520., 153860., 119540., 124000., 92240.,  95816.};
  const std::array<int, 4> in_shape = {{3, 8, 10, 1}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x8x10x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      109466., 111132., 111867., 113582., 114268., 116032., 116669., 118482.,
      133476., 135632., 135877., 138082., 138278., 140532., 140679., 142982.,
      301546., 307132., 303947., 309582., 306348., 312032., 308749., 314482.,
      325556., 331632., 327957., 334082., 330358., 336532., 332759., 338982.,
      493626., 503132., 496027., 505582., 498428., 508032., 500829., 510482.,
      517636., 527632., 520037., 530082., 522438., 532532., 524839., 534982.};
  const std::array<int, 4> in_shape = {{3, 8, 10, 1}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x8x10x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      46280.,   46560.,   46840.,   47120.,   58640.,   59000.,   59360.,
      59720.,   71284.,   71728.,   72172.,   72616.,   84196.,   84728.,
      85260.,   85792.,   88088.,   88648.,   89208.,   89768.,   91980.,
      92568.,   93156.,   93744.,   95872.,   96488.,   97104.,   97720.,
      82660.,   83200.,   83740.,   84280.,   69260.,   69720.,   70180.,
      70640.,   55688.,   56064.,   56440.,   56816.,   70250.,   70700.,
      71150.,   71600.,   88375.,   88950.,   89525.,   90100.,   106685.,
      107390.,  108095.,  108800.,  125160.,  126000.,  126840.,  127680.,
      129535.,  130410.,  131285.,  132160.,  133910.,  134820.,  135730.,
      136640.,  138285.,  139230.,  140175.,  141120.,  118625.,  119450.,
      120275.,  121100.,  98900.,   99600.,   100300.,  101000.,  79130.,
      79700.,   80270.,   80840.,   96940.,   97600.,   98260.,   98920.,
      121340.,  122180.,  123020.,  123860.,  145758.,  146784.,  147810.,
      148836.,  170170.,  171388.,  172606.,  173824.,  174832.,  176092.,
      177352.,  178612.,  179494.,  180796.,  182098.,  183400.,  184156.,
      185500.,  186844.,  188188.,  157350.,  158520.,  159690.,  160860.,
      130670.,  131660.,  132650.,  133640.,  104140.,  104944.,  105748.,
      106552.,  125230.,  126140.,  127050.,  127960.,  156135.,  157290.,
      158445.,  159600.,  186823.,  188230.,  189637.,  191044.,  217266.,
      218932.,  220598.,  222264.,  222019.,  223734.,  225449.,  227164.,
      226772.,  228536.,  230300.,  232064.,  231525.,  233338.,  235151.,
      236964.,  197155.,  198730.,  200305.,  201880.,  163170.,  164500.,
      165830.,  167160.,  129598.,  130676.,  131754.,  132832.,  154070.,
      155260.,  156450.,  157640.,  191485.,  192990.,  194495.,  196000.,
      228403.,  230230.,  232057.,  233884.,  264796.,  266952.,  269108.,
      271264.,  269549.,  271754.,  273959.,  276164.,  274302.,  276556.,
      278810.,  281064.,  279055.,  281358.,  283661.,  285964.,  237055.,
      239050.,  241045.,  243040.,  195720.,  197400.,  199080.,  200760.,
      155078.,  156436.,  157794.,  159152.,  121180.,  122320.,  123460.,
      124600.,  150020.,  151460.,  152900.,  154340.,  178230.,  179976.,
      181722.,  183468.,  205786.,  207844.,  209902.,  211960.,  209272.,
      211372.,  213472.,  215572.,  212758.,  214900.,  217042.,  219184.,
      216244.,  218428.,  220612.,  222796.,  182910.,  184800.,  186690.,
      188580.,  150350.,  151940.,  153530.,  155120.,  118588.,  119872.,
      121156.,  122440.,  90050.,   91100.,   92150.,   93200.,   110925.,
      112250.,  113575.,  114900.,  131105.,  132710.,  134315.,  135920.,
      150570.,  152460.,  154350.,  156240.,  152985.,  154910.,  156835.,
      158760.,  155400.,  157360.,  159320.,  161280.,  157815.,  159810.,
      161805.,  163800.,  132725.,  134450.,  136175.,  137900.,  108450.,
      109900.,  111350.,  112800.,  85010.,   86180.,   87350.,   88520.,
      61800.,   62720.,   63640.,   64560.,   75600.,   76760.,   77920.,
      79080.,   88708.,   90112.,   91516.,   92920.,   101108.,  102760.,
      104412.,  106064.,  102648.,  104328.,  106008.,  107688.,  104188.,
      105896.,  107604.,  109312.,  105728.,  107464.,  109200.,  110936.,
      88180.,   89680.,   91180.,   92680.,   71420.,   72680.,   73940.,
      75200.,   55464.,   56480.,   57496.,   58512.,   231880.,  233440.,
      235000.,  236560.,  287440.,  289400.,  291360.,  293320.,  342004.,
      344368.,  346732.,  349096.,  395556.,  398328.,  401100.,  403872.,
      399448.,  402248.,  405048.,  407848.,  403340.,  406168.,  408996.,
      411824.,  407232.,  410088.,  412944.,  415800.,  345700.,  348160.,
      350620.,  353080.,  285260.,  287320.,  289380.,  291440.,  225928.,
      227584.,  229240.,  230896.,  279850.,  281900.,  283950.,  286000.,
      346375.,  348950.,  351525.,  354100.,  411485.,  414590.,  417695.,
      420800.,  475160.,  478800.,  482440.,  486080.,  479535.,  483210.,
      486885.,  490560.,  483910.,  487620.,  491330.,  495040.,  488285.,
      492030.,  495775.,  499520.,  413825.,  417050.,  420275.,  423500.,
      340900.,  343600.,  346300.,  349000.,  269530.,  271700.,  273870.,
      276040.,  321580.,  324160.,  326740.,  329320.,  397340.,  400580.,
      403820.,  407060.,  471198.,  475104.,  479010.,  482916.,  543130.,
      547708.,  552286.,  556864.,  547792.,  552412.,  557032.,  561652.,
      552454.,  557116.,  561778.,  566440.,  557116.,  561820.,  566524.,
      571228.,  471270.,  475320.,  479370.,  483420.,  387470.,  390860.,
      394250.,  397640.,  305740.,  308464.,  311188.,  313912.,  355950.,
      359100.,  362250.,  365400.,  438935.,  442890.,  446845.,  450800.,
      519463.,  524230.,  528997.,  533764.,  597506.,  603092.,  608678.,
      614264.,  602259.,  607894.,  613529.,  619164.,  607012.,  612696.,
      618380.,  624064.,  611765.,  617498.,  623231.,  628964.,  516355.,
      521290.,  526225.,  531160.,  423570.,  427700.,  431830.,  435960.,
      333438.,  336756.,  340074.,  343392.,  384790.,  388220.,  391650.,
      395080.,  474285.,  478590.,  482895.,  487200.,  561043.,  566230.,
      571417.,  576604.,  645036.,  651112.,  657188.,  663264.,  649789.,
      655914.,  662039.,  668164.,  654542.,  660716.,  666890.,  673064.,
      659295.,  665518.,  671741.,  677964.,  556255.,  561610.,  566965.,
      572320.,  456120.,  460600.,  465080.,  469560.,  358918.,  362516.,
      366114.,  369712.,  292060.,  295120.,  298180.,  301240.,  358820.,
      362660.,  366500.,  370340.,  423030.,  427656.,  432282.,  436908.,
      484666.,  490084.,  495502.,  500920.,  488152.,  493612.,  499072.,
      504532.,  491638.,  497140.,  502642.,  508144.,  495124.,  500668.,
      506212.,  511756.,  416190.,  420960.,  425730.,  430500.,  339950.,
      343940.,  347930.,  351920.,  266428.,  269632.,  272836.,  276040.,
      210050.,  212700.,  215350.,  218000.,  256925.,  260250.,  263575.,
      266900.,  301505.,  305510.,  309515.,  313520.,  343770.,  348460.,
      353150.,  357840.,  346185.,  350910.,  355635.,  360360.,  348600.,
      353360.,  358120.,  362880.,  351015.,  355810.,  360605.,  365400.,
      293525.,  297650.,  301775.,  305900.,  238450.,  241900.,  245350.,
      248800.,  185810.,  188580.,  191350.,  194120.,  139880.,  142080.,
      144280.,  146480.,  170000.,  172760.,  175520.,  178280.,  198148.,
      201472.,  204796.,  208120.,  224308.,  228200.,  232092.,  235984.,
      225848.,  229768.,  233688.,  237608.,  227388.,  231336.,  235284.,
      239232.,  228928.,  232904.,  236880.,  240856.,  189940.,  193360.,
      196780.,  200200.,  153020.,  155880.,  158740.,  161600.,  118184.,
      120480.,  122776.,  125072.,  417480.,  420320.,  423160.,  426000.,
      516240.,  519800.,  523360.,  526920.,  612724.,  617008.,  621292.,
      625576.,  706916.,  711928.,  716940.,  721952.,  710808.,  715848.,
      720888.,  725928.,  714700.,  719768.,  724836.,  729904.,  718592.,
      723688.,  728784.,  733880.,  608740.,  613120.,  617500.,  621880.,
      501260.,  504920.,  508580.,  512240.,  396168.,  399104.,  402040.,
      404976.,  489450.,  493100.,  496750.,  500400.,  604375.,  608950.,
      613525.,  618100.,  716285.,  721790.,  727295.,  732800.,  825160.,
      831600.,  838040.,  844480.,  829535.,  836010.,  842485.,  848960.,
      833910.,  840420.,  846930.,  853440.,  838285.,  844830.,  851375.,
      857920.,  709025.,  714650.,  720275.,  725900.,  582900.,  587600.,
      592300.,  597000.,  459930.,  463700.,  467470.,  471240.,  546220.,
      550720.,  555220.,  559720.,  673340.,  678980.,  684620.,  690260.,
      796638.,  803424.,  810210.,  816996.,  916090.,  924028.,  931966.,
      939904.,  920752.,  928732.,  936712.,  944692.,  925414.,  933436.,
      941458.,  949480.,  930076.,  938140.,  946204.,  954268.,  785190.,
      792120.,  799050.,  805980.,  644270.,  650060.,  655850.,  661640.,
      507340.,  511984.,  516628.,  521272.,  586670.,  592060.,  597450.,
      602840.,  721735.,  728490.,  735245.,  742000.,  852103.,  860230.,
      868357.,  876484.,  977746.,  987252.,  996758.,  1006264., 982499.,
      992054.,  1001609., 1011164., 987252.,  996856.,  1006460., 1016064.,
      992005.,  1001658., 1011311., 1020964., 835555.,  843850.,  852145.,
      860440.,  683970.,  690900.,  697830.,  704760.,  537278.,  542836.,
      548394.,  553952.,  615510.,  621180.,  626850.,  632520.,  757085.,
      764190.,  771295.,  778400.,  893683.,  902230.,  910777.,  919324.,
      1025276., 1035272., 1045268., 1055264., 1030029., 1040074., 1050119.,
      1060164., 1034782., 1044876., 1054970., 1065064., 1039535., 1049678.,
      1059821., 1069964., 875455.,  884170.,  892885.,  901600.,  716520.,
      723800.,  731080.,  738360.,  562758.,  568596.,  574434.,  580272.,
      462940.,  467920.,  472900.,  477880.,  567620.,  573860.,  580100.,
      586340.,  667830.,  675336.,  682842.,  690348.,  763546.,  772324.,
      781102.,  789880.,  767032.,  775852.,  784672.,  793492.,  770518.,
      779380.,  788242.,  797104.,  774004.,  782908.,  791812.,  800716.,
      649470.,  657120.,  664770.,  672420.,  529550.,  535940.,  542330.,
      548720.,  414268.,  419392.,  424516.,  429640.,  330050.,  334300.,
      338550.,  342800.,  402925.,  408250.,  413575.,  418900.,  471905.,
      478310.,  484715.,  491120.,  536970.,  544460.,  551950.,  559440.,
      539385.,  546910.,  554435.,  561960.,  541800.,  549360.,  556920.,
      564480.,  544215.,  551810.,  559405.,  567000.,  454325.,  460850.,
      467375.,  473900.,  368450.,  373900.,  379350.,  384800.,  286610.,
      290980.,  295350.,  299720.,  217960.,  221440.,  224920.,  228400.,
      264400.,  268760.,  273120.,  277480.,  307588.,  312832.,  318076.,
      323320.,  347508.,  353640.,  359772.,  365904.,  349048.,  355208.,
      361368.,  367528.,  350588.,  356776.,  362964.,  369152.,  352128.,
      358344.,  364560.,  370776.,  291700.,  297040.,  302380.,  307720.,
      234620.,  239080.,  243540.,  248000.,  180904.,  184480.,  188056.,
      191632.};
  const std::array<int, 4> in_shape = {{3, 8, 10, 1}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x8x10x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      217266.,  218932.,  220598.,  222264.,  222019.,  223734.,  225449.,
      227164.,  226772.,  228536.,  230300.,  232064.,  231525.,  233338.,
      235151.,  236964.,  264796.,  266952.,  269108.,  271264.,  269549.,
      271754.,  273959.,  276164.,  274302.,  276556.,  278810.,  281064.,
      279055.,  281358.,  283661.,  285964.,  597506.,  603092.,  608678.,
      614264.,  602259.,  607894.,  613529.,  619164.,  607012.,  612696.,
      618380.,  624064.,  611765.,  617498.,  623231.,  628964.,  645036.,
      651112.,  657188.,  663264.,  649789.,  655914.,  662039.,  668164.,
      654542.,  660716.,  666890.,  673064.,  659295.,  665518.,  671741.,
      677964.,  977746.,  987252.,  996758.,  1006264., 982499.,  992054.,
      1001609., 1011164., 987252.,  996856.,  1006460., 1016064., 992005.,
      1001658., 1011311., 1020964., 1025276., 1035272., 1045268., 1055264.,
      1030029., 1040074., 1050119., 1060164., 1034782., 1044876., 1054970.,
      1065064., 1039535., 1049678., 1059821., 1069964.};
  const std::array<int, 4> in_shape = {{3, 8, 10, 1}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x8x10x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      92512.,   117280.,  142640.,  168560.,  176456.,  184352.,  192248.,
      165824.,  139000.,  111808.,  140980.,  177425.,  214270.,  251475.,
      260365.,  269255.,  278145.,  238690.,  199075.,  159340.,  195104.,
      244300.,  293568.,  342860.,  352352.,  361844.,  371336.,  317400.,
      263680.,  210224.,  252644.,  315105.,  377174.,  438795.,  448497.,
      458199.,  467901.,  398594.,  330015.,  262220.,  311444.,  387205.,
      462014.,  535815.,  545517.,  555219.,  564921.,  480074.,  396515.,
      314300.,  245840.,  304480.,  361896.,  418040.,  425180.,  432320.,
      439460.,  371904.,  305860.,  241376.,  183540.,  226225.,  267550.,
      307475.,  312445.,  317415.,  322385.,  271330.,  221875.,  174060.,
      126784.,  155240.,  182336.,  208040.,  211232.,  214424.,  217616.,
      181712.,  147360.,  114592.,  468832.,  581280.,  691760.,  800240.,
      808136.,  816032.,  823928.,  699584.,  577400.,  457408.,  566580.,
      701425.,  833470.,  962675.,  971565.,  980455.,  989345.,  838690.,
      691075.,  546540.,  652064.,  805900.,  955968.,  1102220., 1111712.,
      1121204., 1130696., 956760.,  786880.,  621104.,  723044.,  891905.,
      1055894., 1214955., 1224657., 1234359., 1244061., 1050434., 862015.,
      678860.,  781844.,  964005.,  1140734., 1311975., 1321677., 1331379.,
      1341081., 1131914., 928515.,  730940.,  595280.,  731680.,  863016.,
      989240.,  996380.,  1003520., 1010660., 849984.,  694660.,  544736.,
      429940.,  526225.,  617950.,  705075.,  710045.,  715015.,  719985.,
      602530.,  489875.,  382060.,  288064.,  350440.,  408896.,  463400.,
      466592.,  469784.,  472976.,  392912.,  316960.,  245152.,  845152.,
      1045280., 1240880., 1431920., 1439816., 1447712., 1455608., 1233344.,
      1015800., 803008.,  992180.,  1225425., 1452670., 1673875., 1682765.,
      1691655., 1700545., 1438690., 1183075., 933740.,  1109024., 1367500.,
      1618368., 1861580., 1871072., 1880564., 1890056., 1596120., 1310080.,
      1031984., 1193444., 1468705., 1734614., 1991115., 2000817., 2010519.,
      2020221., 1702274., 1394015., 1095500., 1252244., 1540805., 1819454.,
      2088135., 2097837., 2107539., 2117241., 1783754., 1460515., 1147580.,
      944720.,  1158880., 1364136., 1560440., 1567580., 1574720., 1581860.,
      1328064., 1083460., 848096.,  676340.,  826225.,  968350.,  1102675.,
      1107645., 1112615., 1117585., 933730.,  757875.,  590060.,  449344.,
      545640.,  635456.,  718760.,  721952.,  725144.,  728336.,  604112.,
      486560.,  375712.};
  const std::array<int, 4> in_shape = {{3, 8, 10, 2}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x8x10x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      438795.,  448497.,  458199.,  467901.,  535815.,  545517.,
      555219.,  564921.,  1214955., 1224657., 1234359., 1244061.,
      1311975., 1321677., 1331379., 1341081., 1991115., 2000817.,
      2010519., 2020221., 2088135., 2097837., 2107539., 2117241.};
  const std::array<int, 4> in_shape = {{3, 8, 10, 2}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x8x10x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      183920.,  185024.,  233140.,  234560.,  283528.,  285280.,  335020.,
      337120.,  350700.,  352912.,  366380.,  368704.,  382060.,  384496.,
      329512.,  331648.,  276180.,  278000.,  222128.,  223616.,  280180.,
      281960.,  352575.,  354850.,  425750.,  428540.,  499625.,  502950.,
      517265.,  520730.,  534905.,  538510.,  552545.,  556290.,  474110.,
      477380.,  395375.,  398150.,  316420.,  318680.,  387592.,  390208.,
      485270.,  488600.,  583068.,  587136.,  680890.,  685720.,  699706.,
      704704.,  718522.,  723688.,  737338.,  742672.,  630156.,  634800.,
      523430.,  527360.,  417256.,  420448.,  501676.,  505288.,  625625.,
      630210.,  748762.,  754348.,  870975.,  877590.,  890183.,  896994.,
      909391.,  916398.,  928599.,  935802.,  790930.,  797188.,  654745.,
      660030.,  520156.,  524440.,  618156.,  622888.,  768425.,  774410.,
      916762.,  924028.,  1063055., 1071630., 1082263., 1091034., 1101471.,
      1110438., 1120679., 1129842., 952210.,  960148.,  786345.,  793030.,
      623196.,  628600.,  487144.,  491680.,  603230.,  608960.,  716844.,
      723792.,  827890.,  836080.,  842002.,  850360.,  856114.,  864640.,
      870226.,  878920.,  736284.,  743808.,  605390.,  611720.,  477640.,
      482752.,  362900.,  367080.,  447175.,  452450.,  528710.,  535100.,
      607425.,  614950.,  617225.,  624890.,  627025.,  634830.,  636825.,
      644770.,  535790.,  542660.,  437975.,  443750.,  343460.,  348120.,
      249904.,  253568.,  305860.,  310480.,  359080.,  364672.,  409500.,
      416080.,  415772.,  422464.,  422044.,  428848.,  428316.,  435232.,
      357448.,  363424.,  289700.,  294720.,  225136.,  229184.,  931440.,
      937664.,  1154740., 1162560., 1374088., 1383520., 1589420., 1600480.,
      1605100., 1616272., 1620780., 1632064., 1636460., 1647856., 1389352.,
      1399168., 1146580., 1154800., 908208.,  914816.,  1124980., 1133160.,
      1392575., 1402850., 1654550., 1666940., 1910825., 1925350., 1928465.,
      1943130., 1946105., 1960910., 1963745., 1978690., 1664510., 1677380.,
      1371375., 1382150., 1084420., 1093080., 1293832., 1304128., 1598870.,
      1611800., 1896348., 1911936., 2186170., 2204440., 2204986., 2223424.,
      2223802., 2242408., 2242618., 2261392., 1897356., 1913520., 1560230.,
      1573760., 1231336., 1242208., 1433516., 1446088., 1768025., 1783810.,
      2092762., 2111788., 2407615., 2429910., 2426823., 2449314., 2446031.,
      2468718., 2465239., 2488122., 2081170., 2100868., 1707545., 1724030.,
      1344476., 1357720., 1549996., 1563688., 1910825., 1928010., 2260762.,
      2281468., 2599695., 2623950., 2618903., 2643354., 2638111., 2662758.,
      2657319., 2682162., 2242450., 2263828., 1839145., 1857030., 1447516.,
      1461880., 1178344., 1190560., 1448030., 1463360., 1707564., 1726032.,
      1956850., 1978480., 1970962., 1992760., 1985074., 2007040., 1999186.,
      2021320., 1680924., 1699968., 1373390., 1389320., 1076680., 1089472.,
      849300.,  859880.,  1039175., 1052450., 1219910., 1235900., 1391425.,
      1410150., 1401225., 1420090., 1411025., 1430030., 1420825., 1439970.,
      1188590., 1205060., 965975.,  979750.,  753060.,  764120.,  567344.,
      576128.,  689860.,  700880.,  804520.,  817792.,  911260.,  926800.,
      917532.,  933184.,  923804.,  939568.,  930076.,  945952.,  772168.,
      785824.,  622500.,  633920.,  481136.,  490304.,  1678960., 1690304.,
      2076340., 2090560., 2464648., 2481760., 2843820., 2863840., 2859500.,
      2879632., 2875180., 2895424., 2890860., 2911216., 2449192., 2466688.,
      2016980., 2031600., 1594288., 1606016., 1969780., 1984360., 2432575.,
      2450850., 2883350., 2905340., 3322025., 3347750., 3339665., 3365530.,
      3357305., 3383310., 3374945., 3401090., 2854910., 2877380., 2347375.,
      2366150., 1852420., 1867480., 2200072., 2218048., 2712470., 2735000.,
      3209628., 3236736., 3691450., 3723160., 3710266., 3742144., 3729082.,
      3761128., 3747898., 3780112., 3164556., 3192240., 2597030., 2620160.,
      2045416., 2063968., 2365356., 2386888., 2910425., 2937410., 3436762.,
      3469228., 3944255., 3982230., 3963463., 4001634., 3982671., 4021038.,
      4001879., 4040442., 3371410., 3404548., 2760345., 2788030., 2168796.,
      2191000., 2481836., 2504488., 3053225., 3081610., 3604762., 3638908.,
      4136335., 4176270., 4155543., 4195674., 4174751., 4215078., 4193959.,
      4234482., 3532690., 3567508., 2891945., 2921030., 2271836., 2295160.,
      1869544., 1889440., 2292830., 2317760., 2698284., 2728272., 3085810.,
      3120880., 3099922., 3135160., 3114034., 3149440., 3128146., 3163720.,
      2625564., 2656128., 2141390., 2166920., 1675720., 1696192., 1335700.,
      1352680., 1631175., 1652450., 1911110., 1936700., 2175425., 2205350.,
      2185225., 2215290., 2195025., 2225230., 2204825., 2235170., 1841390.,
      1867460., 1493975., 1515750., 1162660., 1180120., 884784.,  898688.,
      1073860., 1091280., 1249960., 1270912., 1413020., 1437520., 1419292.,
      1443904., 1425564., 1450288., 1431836., 1456672., 1186888., 1208224.,
      955300.,  973120.,  737136.,  751424.};
  const std::array<int, 4> in_shape = {{3, 8, 10, 2}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x8x10x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      870975.,  877590.,  890183.,  896994.,  909391.,  916398.,  928599.,
      935802.,  1063055., 1071630., 1082263., 1091034., 1101471., 1110438.,
      1120679., 1129842., 2407615., 2429910., 2426823., 2449314., 2446031.,
      2468718., 2465239., 2488122., 2599695., 2623950., 2618903., 2643354.,
      2638111., 2662758., 2657319., 2682162., 3944255., 3982230., 3963463.,
      4001634., 3982671., 4021038., 4001879., 4040442., 4136335., 4176270.,
      4155543., 4195674., 4174751., 4215078., 4193959., 4234482.};
  const std::array<int, 4> in_shape = {{3, 8, 10, 2}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x8x10x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      366736.,  367840.,  368944.,  370048.,  464860.,  466280.,  467700.,
      469120.,  565304.,  567056.,  568808.,  570560.,  667940.,  670040.,
      672140.,  674240.,  699188.,  701400.,  703612.,  705824.,  730436.,
      732760.,  735084.,  737408.,  761684.,  764120.,  766556.,  768992.,
      656888.,  659024.,  661160.,  663296.,  550540.,  552360.,  554180.,
      556000.,  442768.,  444256.,  445744.,  447232.,  558580.,  560360.,
      562140.,  563920.,  702875.,  705150.,  707425.,  709700.,  848710.,
      851500.,  854290.,  857080.,  995925.,  999250.,  1002575., 1005900.,
      1031065., 1034530., 1037995., 1041460., 1066205., 1069810., 1073415.,
      1077020., 1101345., 1105090., 1108835., 1112580., 944950.,  948220.,
      951490.,  954760.,  787975.,  790750.,  793525.,  796300.,  630580.,
      632840.,  635100.,  637360.,  772568.,  775184.,  777800.,  780416.,
      967210.,  970540.,  973870.,  977200.,  1162068., 1166136., 1170204.,
      1174272., 1356950., 1361780., 1366610., 1371440., 1394414., 1399412.,
      1404410., 1409408., 1431878., 1437044., 1442210., 1447376., 1469342.,
      1474676., 1480010., 1485344., 1255668., 1260312., 1264956., 1269600.,
      1042930., 1046860., 1050790., 1054720., 831320.,  834512.,  837704.,
      840896.,  999740.,  1003352., 1006964., 1010576., 1246665., 1251250.,
      1255835., 1260420., 1491938., 1497524., 1503110., 1508696., 1735335.,
      1741950., 1748565., 1755180., 1773555., 1780366., 1787177., 1793988.,
      1811775., 1818782., 1825789., 1832796., 1849995., 1857198., 1864401.,
      1871604., 1575602., 1581860., 1588118., 1594376., 1304205., 1309490.,
      1314775., 1320060., 1036028., 1040312., 1044596., 1048880., 1231580.,
      1236312., 1241044., 1245776., 1530865., 1536850., 1542835., 1548820.,
      1826258., 1833524., 1840790., 1848056., 2117535., 2126110., 2134685.,
      2143260., 2155755., 2164526., 2173297., 2182068., 2193975., 2202942.,
      2211909., 2220876., 2232195., 2241358., 2250521., 2259684., 1896482.,
      1904420., 1912358., 1920296., 1566005., 1572690., 1579375., 1586060.,
      1240988., 1246392., 1251796., 1257200., 969752.,  974288.,  978824.,
      983360.,  1200730., 1206460., 1212190., 1217920., 1426740., 1433688.,
      1440636., 1447584., 1647590., 1655780., 1663970., 1672160., 1675646.,
      1684004., 1692362., 1700720., 1703702., 1712228., 1720754., 1729280.,
      1731758., 1740452., 1749146., 1757840., 1465044., 1472568., 1480092.,
      1487616., 1204450., 1210780., 1217110., 1223440., 950168.,  955280.,
      960392.,  965504.,  721620.,  725800.,  729980.,  734160.,  889075.,
      894350.,  899625.,  904900.,  1051030., 1057420., 1063810., 1070200.,
      1207325., 1214850., 1222375., 1229900., 1226785., 1234450., 1242115.,
      1249780., 1246245., 1254050., 1261855., 1269660., 1265705., 1273650.,
      1281595., 1289540., 1064710., 1071580., 1078450., 1085320., 870175.,
      875950.,  881725.,  887500.,  682260.,  686920.,  691580.,  696240.,
      496144.,  499808.,  503472.,  507136.,  607100.,  611720.,  616340.,
      620960.,  712568.,  718160.,  723752.,  729344.,  812420.,  819000.,
      825580.,  832160.,  824852.,  831544.,  838236.,  844928.,  837284.,
      844088.,  850892.,  857696.,  849716.,  856632.,  863548.,  870464.,
      708920.,  714896.,  720872.,  726848.,  574380.,  579400.,  584420.,
      589440.,  446224.,  450272.,  454320.,  458368.,  1856656., 1862880.,
      1869104., 1875328., 2301660., 2309480., 2317300., 2325120., 2738744.,
      2748176., 2757608., 2767040., 3167780., 3178840., 3189900., 3200960.,
      3199028., 3210200., 3221372., 3232544., 3230276., 3241560., 3252844.,
      3264128., 3261524., 3272920., 3284316., 3295712., 2768888., 2778704.,
      2788520., 2798336., 2284940., 2293160., 2301380., 2309600., 1809808.,
      1816416., 1823024., 1829632., 2241780., 2249960., 2258140., 2266320.,
      2774875., 2785150., 2795425., 2805700., 3296710., 3309100., 3321490.,
      3333880., 3807125., 3821650., 3836175., 3850700., 3842265., 3856930.,
      3871595., 3886260., 3877405., 3892210., 3907015., 3921820., 3912545.,
      3927490., 3942435., 3957380., 3316150., 3329020., 3341890., 3354760.,
      2731975., 2742750., 2753525., 2764300., 2160180., 2168840., 2177500.,
      2186160., 2577368., 2587664., 2597960., 2608256., 3184810., 3197740.,
      3210670., 3223600., 3777108., 3792696., 3808284., 3823872., 4354070.,
      4372340., 4390610., 4408880., 4391534., 4409972., 4428410., 4446848.,
      4428998., 4447604., 4466210., 4484816., 4466462., 4485236., 4504010.,
      4522784., 3778548., 3794712., 3810876., 3827040., 3106930., 3120460.,
      3133990., 3147520., 2451800., 2462672., 2473544., 2484416., 2854460.,
      2867032., 2879604., 2892176., 3520265., 3536050., 3551835., 3567620.,
      4166498., 4185524., 4204550., 4223576., 4792935., 4815230., 4837525.,
      4859820., 4831155., 4853646., 4876137., 4898628., 4869375., 4892062.,
      4914749., 4937436., 4907595., 4930478., 4953361., 4976244., 4142642.,
      4162340., 4182038., 4201736., 3398605., 3415090., 3431575., 3448060.,
      2675708., 2688952., 2702196., 2715440., 3086300., 3099992., 3113684.,
      3127376., 3804465., 3821650., 3838835., 3856020., 4500818., 4521524.,
      4542230., 4562936., 5175135., 5199390., 5223645., 5247900., 5213355.,
      5237806., 5262257., 5286708., 5251575., 5276222., 5300869., 5325516.,
      5289795., 5314638., 5339481., 5364324., 4463522., 4484900., 4506278.,
      4527656., 3660405., 3678290., 3696175., 3714060., 2880668., 2895032.,
      2909396., 2923760., 2344472., 2356688., 2368904., 2381120., 2880730.,
      2896060., 2911390., 2926720., 3396660., 3415128., 3433596., 3452064.,
      3892070., 3913700., 3935330., 3956960., 3920126., 3941924., 3963722.,
      3985520., 3948182., 3970148., 3992114., 4014080., 3976238., 3998372.,
      4020506., 4042640., 3342804., 3361848., 3380892., 3399936., 2730850.,
      2746780., 2762710., 2778640., 2140568., 2153360., 2166152., 2178944.,
      1688020., 1698600., 1709180., 1719760., 2065075., 2078350., 2091625.,
      2104900., 2423830., 2439820., 2455810., 2471800., 2764125., 2782850.,
      2801575., 2820300., 2783585., 2802450., 2821315., 2840180., 2803045.,
      2822050., 2841055., 2860060., 2822505., 2841650., 2860795., 2879940.,
      2360710., 2377180., 2393650., 2410120., 1918175., 1931950., 1945725.,
      1959500., 1495060., 1506120., 1517180., 1528240., 1125904., 1134688.,
      1143472., 1152256., 1368700., 1379720., 1390740., 1401760., 1595768.,
      1609040., 1622312., 1635584., 1806980., 1822520., 1838060., 1853600.,
      1819412., 1835064., 1850716., 1866368., 1831844., 1847608., 1863372.,
      1879136., 1844276., 1860152., 1876028., 1891904., 1530680., 1544336.,
      1557992., 1571648., 1233580., 1245000., 1256420., 1267840., 953104.,
      962272.,  971440.,  980608.,  3346576., 3357920., 3369264., 3380608.,
      4138460., 4152680., 4166900., 4181120., 4912184., 4929296., 4946408.,
      4963520., 5667620., 5687640., 5707660., 5727680., 5698868., 5719000.,
      5739132., 5759264., 5730116., 5750360., 5770604., 5790848., 5761364.,
      5781720., 5802076., 5822432., 4880888., 4898384., 4915880., 4933376.,
      4019340., 4033960., 4048580., 4063200., 3176848., 3188576., 3200304.,
      3212032., 3924980., 3939560., 3954140., 3968720., 4846875., 4865150.,
      4883425., 4901700., 5744710., 5766700., 5788690., 5810680., 6618325.,
      6644050., 6669775., 6695500., 6653465., 6679330., 6705195., 6731060.,
      6688605., 6714610., 6740615., 6766620., 6723745., 6749890., 6776035.,
      6802180., 5687350., 5709820., 5732290., 5754760., 4675975., 4694750.,
      4713525., 4732300., 3689780., 3704840., 3719900., 3734960., 4382168.,
      4400144., 4418120., 4436096., 5402410., 5424940., 5447470., 5470000.,
      6392148., 6419256., 6446364., 6473472., 7351190., 7382900., 7414610.,
      7446320., 7388654., 7420532., 7452410., 7484288., 7426118., 7458164.,
      7490210., 7522256., 7463582., 7495796., 7528010., 7560224., 6301428.,
      6329112., 6356796., 6384480., 5170930., 5194060., 5217190., 5240320.,
      4072280., 4090832., 4109384., 4127936., 4709180., 4730712., 4752244.,
      4773776., 5793865., 5820850., 5847835., 5874820., 6841058., 6873524.,
      6905990., 6938456., 7850535., 7888510., 7926485., 7964460., 7888755.,
      7926926., 7965097., 8003268., 7926975., 7965342., 8003709., 8042076.,
      7965195., 8003758., 8042321., 8080884., 6709682., 6742820., 6775958.,
      6809096., 5493005., 5520690., 5548375., 5576060., 4315388., 4337592.,
      4359796., 4382000., 4941020., 4963672., 4986324., 5008976., 6078065.,
      6106450., 6134835., 6163220., 7175378., 7209524., 7243670., 7277816.,
      8232735., 8272670., 8312605., 8352540., 8270955., 8311086., 8351217.,
      8391348., 8309175., 8349502., 8389829., 8430156., 8347395., 8387918.,
      8428441., 8468964., 7030562., 7065380., 7100198., 7135016., 5754805.,
      5783890., 5812975., 5842060., 4520348., 4543672., 4566996., 4590320.,
      3719192., 3739088., 3758984., 3778880., 4560730., 4585660., 4610590.,
      4635520., 5366580., 5396568., 5426556., 5456544., 6136550., 6171620.,
      6206690., 6241760., 6164606., 6199844., 6235082., 6270320., 6192662.,
      6228068., 6263474., 6298880., 6220718., 6256292., 6291866., 6327440.,
      5220564., 5251128., 5281692., 5312256., 4257250., 4282780., 4308310.,
      4333840., 3330968., 3351440., 3371912., 3392384., 2654420., 2671400.,
      2688380., 2705360., 3241075., 3262350., 3283625., 3304900., 3796630.,
      3822220., 3847810., 3873400., 4320925., 4350850., 4380775., 4410700.,
      4340385., 4370450., 4400515., 4430580., 4359845., 4390050., 4420255.,
      4450460., 4379305., 4409650., 4439995., 4470340., 3656710., 3682780.,
      3708850., 3734920., 2966175., 2987950., 3009725., 3031500., 2307860.,
      2325320., 2342780., 2360240., 1755664., 1769568., 1783472., 1797376.,
      2130300., 2147720., 2165140., 2182560., 2478968., 2499920., 2520872.,
      2541824., 2801540., 2826040., 2850540., 2875040., 2813972., 2838584.,
      2863196., 2887808., 2826404., 2851128., 2875852., 2900576., 2838836.,
      2863672., 2888508., 2913344., 2352440., 2373776., 2395112., 2416448.,
      1892780., 1910600., 1928420., 1946240., 1459984., 1474272., 1488560.,
      1502848.};
  const std::array<int, 4> in_shape = {{3, 8, 10, 2}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x8x10x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1735335., 1741950., 1748565., 1755180., 1773555., 1780366., 1787177.,
      1793988., 1811775., 1818782., 1825789., 1832796., 1849995., 1857198.,
      1864401., 1871604., 2117535., 2126110., 2134685., 2143260., 2155755.,
      2164526., 2173297., 2182068., 2193975., 2202942., 2211909., 2220876.,
      2232195., 2241358., 2250521., 2259684., 4792935., 4815230., 4837525.,
      4859820., 4831155., 4853646., 4876137., 4898628., 4869375., 4892062.,
      4914749., 4937436., 4907595., 4930478., 4953361., 4976244., 5175135.,
      5199390., 5223645., 5247900., 5213355., 5237806., 5262257., 5286708.,
      5251575., 5276222., 5300869., 5325516., 5289795., 5314638., 5339481.,
      5364324., 7850535., 7888510., 7926485., 7964460., 7888755., 7926926.,
      7965097., 8003268., 7926975., 7965342., 8003709., 8042076., 7965195.,
      8003758., 8042321., 8080884., 8232735., 8272670., 8312605., 8352540.,
      8270955., 8311086., 8351217., 8391348., 8309175., 8349502., 8389829.,
      8430156., 8347395., 8387918., 8428441., 8468964.};
  const std::array<int, 4> in_shape = {{3, 8, 10, 2}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x8x10x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      733216.,  929640.,  1130800., 1336440., 1399384., 1462328., 1525272.,
      1315696., 1102920., 887200.,  1119000., 1408350., 1700900., 1996330.,
      2067170., 2138010., 2208850., 1895540., 1580950., 1265400., 1549936.,
      1940780., 2332200., 2723812., 2799412., 2875012., 2950612., 2521992.,
      2095100., 1670320., 2008104., 2504530., 2997820., 3487526., 3564750.,
      3641974., 3719198., 3168172., 2622970., 2084040., 2476264., 3078530.,
      3673180., 4259766., 4336990., 4414214., 4491438., 3816652., 3152170.,
      2498440., 1953328., 2419100., 2875080., 3320884., 3377668., 3434452.,
      3491236., 2954280., 2429420., 1917040., 1456920., 1795550., 2123300.,
      2439850., 2479330., 2518810., 2558290., 2152820., 1760150., 1380600.,
      1004960., 1230280., 1444720., 1648024., 1673336., 1698648., 1723960.,
      1439152., 1166760., 907040.,  3733536., 4628840., 5508400., 6371960.,
      6434904., 6497848., 6560792., 5570416., 4597320., 3641760., 4511000.,
      5584350., 6635300., 7663530., 7734370., 7406874., 7087570., 5904244.,
      4745238., 3610872., 3646064., 4504620., 5341224., 6155492., 6231092.,
      5965700., 5708500., 4738440., 3792636., 2871472., 2894376., 3563730.,
      4210492., 4834214., 4911438., 4705014., 4506782., 3721388., 2961274.,
      2226888., 2277096., 2801410., 3306844., 3792950., 3870174., 3721094.,
      3580206., 2954700., 2350762., 1768840., 1477168., 1808540., 2123976.,
      2423092., 2479876., 2367700., 2263716., 1852968., 1460460., 1086576.,
      847128.,  1030750., 1202468., 1361962., 1401442., 1329306., 1265362.,
      1027188., 802838.,  592632.,  404896.,  490440.,  569200.,  640920.,
      666232.,  637272.,  616504.,  504240.,  400296.,  304928.,  1933344.,
      2409320., 2881840., 3350648., 3413592., 3476536., 3539480., 3017584.,
      2500680., 1989024., 2475800., 3078750., 3674660., 4263210., 4334050.,
      4404890., 4475730., 3807860., 3148950., 2499320., 3006064., 3730220.,
      4442664., 5143012., 5218612., 5294212., 5369812., 4558728., 3761660.,
      2978992., 3506216., 4341330., 5158972., 5958694., 6035918., 6113142.,
      6190366., 5243308., 4316410., 3410120., 3974376., 4915330., 5834332.,
      6730934., 6808158., 6885382., 6962606., 5891788., 4845610., 3824520.,
      3065392., 3778460., 4469448., 5137972., 5194756., 5251540., 5308324.,
      4474920., 3665900., 2881648., 2240280., 2749150., 3236900., 3703210.,
      3742690., 3782170., 3821650., 3204980., 2611350., 2041080., 1516960.,
      1849800., 2163568., 2458008., 2483320., 2508632., 2533944., 2108848.,
      1704360., 1320736.};
  const std::array<int, 4> in_shape = {{3, 8, 10, 4}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x8x10x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3487526., 3564750., 3641974., 3719198., 4259766., 4336990.,
      4414214., 4491438., 4834214., 4911438., 4705014., 4506782.,
      3792950., 3870174., 3721094., 3580206., 5958694., 6035918.,
      6113142., 6190366., 6730934., 6808158., 6885382., 6962606.};
  const std::array<int, 4> in_shape = {{3, 8, 10, 4}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x8x10x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1462048.,  1466432.,  1853640.,  1859280.,  2254640.,  2261600.,
      2664536.,  2672880.,  2789976.,  2798768.,  2915416.,  2924656.,
      3040856.,  3050544.,  2622896.,  2631392.,  2198600.,  2205840.,
      1768480.,  1774400.,  2230920.,  2238000.,  2807650.,  2816700.,
      3390700.,  3401800.,  3979430.,  3992660.,  4120550.,  4134340.,
      4261670.,  4276020.,  4402790.,  4417700.,  3778060.,  3791080.,
      3150850.,  3161900.,  2521800.,  2530800.,  3089456.,  3099872.,
      3868300.,  3881560.,  4648200.,  4664400.,  5428388.,  5447624.,
      5578916.,  5598824.,  5729444.,  5750024.,  5879972.,  5901224.,
      5025480.,  5043984.,  4174540.,  4190200.,  3327920.,  3340640.,
      4001816.,  4016208.,  4990790.,  5009060.,  5973380.,  5995640.,
      6948690.,  6975052.,  7102354.,  7129500.,  7256018.,  7283948.,
      7409682.,  7438396.,  6311396.,  6336344.,  5224870.,  5245940.,
      4151000.,  4168080.,  4933656.,  4952528.,  6133190.,  6157060.,
      7317380.,  7346360.,  8485330.,  8519532.,  8638994.,  8673980.,
      8792658.,  8828428.,  8946322.,  8982876.,  7601636.,  7633304.,
      6277670.,  6304340.,  4975320.,  4996880.,  3888560.,  3906656.,
      4815340.,  4838200.,  5722440.,  5750160.,  6609092.,  6641768.,
      6721988.,  6755336.,  6834884.,  6868904.,  6947780.,  6982472.,
      5878536.,  5908560.,  4833580.,  4858840.,  3813680.,  3834080.,
      2897160.,  2913840.,  3570050.,  3591100.,  4221100.,  4246600.,
      4849670.,  4879700.,  4928070.,  4958660.,  5006470.,  5037620.,
      5084870.,  5116580.,  4278220.,  4305640.,  3497250.,  3520300.,
      2742600.,  2761200.,  1995296.,  2009920.,  2442120.,  2460560.,
      2867120.,  2889440.,  3269784.,  3296048.,  3319960.,  3346672.,
      3370136.,  3397296.,  3420312.,  3447920.,  2854448.,  2878304.,
      2313480.,  2333520.,  1797920.,  1814080.,  7442208.,  7467072.,
      9226440.,  9257680.,  10979120., 11016800., 12699736., 12743920.,
      12825176., 12869808., 12950616., 12995696., 13076056., 13121584.,
      11101616., 11140832., 9161800.,  9194640.,  7257120.,  7283520.,
      8989320.,  9022000.,  11127650., 11168700., 13221100., 13270600.,
      15269030., 15327060., 15410150., 15468740., 14756646., 14813748.,
      14119526., 14175140., 11761164., 11808488., 9451522.,  9490476.,
      7191240.,  7221744.,  7259184.,  7292128.,  8967820.,  9009240.,
      10632456., 10682448., 12252324., 12310984., 12402852., 12462184.,
      11873444., 11931400., 11360420., 11417000., 9428680.,  9476880.,
      7545548.,  7585272.,  5711792.,  5742944.,  5754904.,  5788752.,
      7084870.,  7127460.,  8369540.,  8420984.,  9608018.,  9668428.,
      9761682.,  9822876.,  9350098.,  9410028.,  8954898.,  9013564.,
      7392740.,  7442776.,  5881254.,  5922548.,  4421336.,  4453776.,
      4524056.,  4554192.,  5564870.,  5602820.,  6567812.,  6613688.,
      7531986.,  7585900.,  7685650.,  7740348.,  7388754.,  7442188.,
      7108242.,  7160412.,  5864932.,  5909400.,  4664870.,  4701524.,
      3508952.,  3537680.,  2930096.,  2954336.,  3586540.,  3617080.,
      4211016.,  4247952.,  4802756.,  4846184.,  4915652.,  4959752.,
      4692676.,  4735400.,  4486084.,  4527432.,  3670792.,  3705936.,
      2892076.,  2920920.,  2150704.,  2173152.,  1676552.,  1694256.,
      2039170.,  2061500.,  2377900.,  2404936.,  2692102.,  2723924.,
      2770502.,  2802884.,  2627718.,  2658612.,  2501318.,  2530724.,
      2029516.,  2054376.,  1585442.,  1605676.,  1169736.,  1185264.,
      799264.,   809792.,   967560.,   980880.,   1122224.,  1138400.,
      1262744.,  1281840.,  1312920.,  1332464.,  1256600.,  1274544.,
      1216664.,  1233008.,  994864.,   1008480.,  789768.,   800592.,
      601888.,   609856.,   3854112.,  3866688.,  4802760.,  4818640.,
      5744432.,  5763680.,  6678616.,  6701296.,  6804056.,  6827184.,
      6929496.,  6953072.,  7054936.,  7078960.,  6014384.,  6035168.,
      4983880.,  5001360.,  3963936.,  3978048.,  4934280.,  4951600.,
      6135650.,  6157500.,  7322860.,  7349320.,  8495270.,  8526420.,
      8636390.,  8668100.,  8777510.,  8809780.,  8918630.,  8951460.,
      7587340.,  7615720.,  6274050.,  6297900.,  4979400.,  4998640.,
      5989424.,  6012128.,  7431820.,  7460440.,  8850696.,  8885328.,
      10245284., 10286024., 10395812., 10437224., 10546340., 10588424.,
      10696868., 10739624., 9080520.,  9117456.,  7492300.,  7523320.,
      5932976.,  5957984.,  6983704.,  7012432.,  8646470.,  8682660.,
      10274180., 10317944., 11865938., 11917388., 12019602., 12071836.,
      12173266., 12226284., 12326930., 12380732., 10440164., 10486616.,
      8593830.,  8632820.,  6788824.,  6820240.,  7915544.,  7948752.,
      9788870.,  9830660.,  11618180., 11668664., 13402578., 13461868.,
      13556242., 13616316., 13709906., 13770764., 13863570., 13925212.,
      11730404., 11783576., 9646630.,  9691220.,  7613144.,  7649040.,
      6100400.,  6130784.,  7518700.,  7556920.,  8892744.,  8938896.,
      10221764., 10275944., 10334660., 10389512., 10447556., 10503080.,
      10560452., 10616648., 8901384.,  8949840.,  7291180.,  7331800.,
      5730608.,  5763296.,  4453640.,  4480560.,  5464450.,  5498300.,
      6432940.,  6473800.,  7358470.,  7406420.,  7436870.,  7485380.,
      7515270.,  7564340.,  7593670.,  7643300.,  6367180.,  6409960.,
      5186850.,  5222700.,  4053320.,  4082160.,  3011104.,  3033920.,
      3670920.,  3699600.,  4292528.,  4327136.,  4875416.,  4916016.,
      4925592.,  4966640.,  4975768.,  5017264.,  5025944.,  5067888.,
      4181552.,  4217696.,  3378440.,  3408720.,  2617120.,  2641472.};
  const std::array<int, 4> in_shape = {{3, 8, 10, 4}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x8x10x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6948690.,  6975052.,  7102354.,  7129500.,  7256018.,  7283948.,
      7409682.,  7438396.,  8485330.,  8519532.,  8638994.,  8673980.,
      8792658.,  8828428.,  8946322.,  8982876.,  9608018.,  9668428.,
      9761682.,  9822876.,  9350098.,  9410028.,  8954898.,  9013564.,
      7531986.,  7585900.,  7685650.,  7740348.,  7388754.,  7442188.,
      7108242.,  7160412.,  11865938., 11917388., 12019602., 12071836.,
      12173266., 12226284., 12326930., 12380732., 13402578., 13461868.,
      13556242., 13616316., 13709906., 13770764., 13863570., 13925212.};
  const std::array<int, 4> in_shape = {{3, 8, 10, 4}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x8x10x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      831776.,   836160.,   840544.,   844928.,   1103752.,  1109392.,
      1115032.,  1120672.,  1378096.,  1385056.,  1392016.,  1398976.,
      1653784.,  1662128.,  1670472.,  1678816.,  1764952.,  1773744.,
      1782536.,  1791328.,  1876120.,  1885360.,  1894600.,  1903840.,
      1987288.,  1996976.,  2006664.,  2016352.,  1765936.,  1774432.,
      1782928.,  1791424.,  1556552.,  1563792.,  1571032.,  1578272.,
      1360160.,  1366080.,  1372000.,  1377920.,  1465704.,  1472784.,
      1479864.,  1486944.,  1943402.,  1952452.,  1961502.,  1970552.,
      2417276.,  2428376.,  2439476.,  2450576.,  2886046.,  2899276.,
      2912506.,  2925736.,  3028462.,  3042252.,  3056042.,  3069832.,
      3170878.,  3185228.,  3199578.,  3213928.,  3313294.,  3328204.,
      3343114.,  3358024.,  2924860.,  2937880.,  2950900.,  2963920.,
      2556122.,  2567172.,  2578222.,  2589272.,  2208360.,  2217360.,
      2226360.,  2235360.,  2278320.,  2288736.,  2299152.,  2309568.,
      2995532.,  3008792.,  3022052.,  3035312.,  3698376.,  3714576.,
      3730776.,  3746976.,  4385316.,  4404552.,  4423788.,  4443024.,
      4546436.,  4566344.,  4586252.,  4606160.,  4707556.,  4728136.,
      4748716.,  4769296.,  4868676.,  4889928.,  4911180.,  4932432.,
      4267336.,  4285840.,  4304344.,  4322848.,  3697772.,  3713432.,
      3729092.,  3744752.,  3161520.,  3174240.,  3186960.,  3199680.,
      3197944.,  3212336.,  3226728.,  3241120.,  4170542.,  4188812.,
      4207082.,  4225352.,  5113876.,  5136136.,  5158396.,  5180656.,
      6026154.,  6052516.,  6078878.,  6105240.,  6193434.,  6220580.,
      6247726.,  6274872.,  6360714.,  6388644.,  6416574.,  6444504.,
      6527994.,  6556708.,  6585422.,  6614136.,  5685844.,  5710792.,
      5735740.,  5760688.,  4891902.,  4912972.,  4934042.,  4955112.,
      4147960.,  4165040.,  4182120.,  4199200.,  4156024.,  4174896.,
      4193768.,  4212640.,  5384782.,  5408652.,  5432522.,  5456392.,
      6566356.,  6595336.,  6624316.,  6653296.,  7698954.,  7733156.,
      7767358.,  7801560.,  7866234.,  7901220.,  7936206.,  7971192.,
      8033514.,  8069284.,  8105054.,  8140824.,  8200794.,  8237348.,
      8273902.,  8310456.,  7112724.,  7144392.,  7176060.,  7207728.,
      6090782.,  6117452.,  6144122.,  6170792.,  5136760.,  5158320.,
      5179880.,  5201440.,  3856560.,  3874656.,  3892752.,  3910848.,
      5069452.,  5092312.,  5115172.,  5138032.,  6234696.,  6262416.,
      6290136.,  6317856.,  7350756.,  7383432.,  7416108.,  7448784.,
      7493956.,  7527304.,  7560652.,  7594000.,  7637156.,  7671176.,
      7705196.,  7739216.,  7780356.,  7815048.,  7849740.,  7884432.,
      6803656.,  6833680.,  6863704.,  6893728.,  5892012.,  5917272.,
      5942532.,  5967792.,  5046960.,  5067360.,  5087760.,  5108160.,
      3992808.,  4009488.,  4026168.,  4042848.,  5309642.,  5330692.,
      5351742.,  5372792.,  6582716.,  6608216.,  6633716.,  6659216.,
      7810750.,  7840780.,  7870810.,  7900840.,  7942414.,  7973004.,
      8003594.,  8034184.,  8074078.,  8105228.,  8136378.,  8167528.,
      8205742.,  8237452.,  8269162.,  8300872.,  7232636.,  7260056.,
      7287476.,  7314896.,  6319162.,  6342212.,  6365262.,  6388312.,
      5466600.,  5485200.,  5503800.,  5522400.,  3975968.,  3990592.,
      4005216.,  4019840.,  4865800.,  4884240.,  4902680.,  4921120.,
      5711920.,  5734240.,  5756560.,  5778880.,  6513304.,  6539568.,
      6565832.,  6592096.,  6613208.,  6639920.,  6666632.,  6693344.,
      6713112.,  6740272.,  6767432.,  6794592.,  6813016.,  6840624.,
      6868232.,  6895840.,  5685040.,  5708896.,  5732752.,  5756608.,
      4606920.,  4626960.,  4647000.,  4667040.,  3579680.,  3595840.,
      3612000.,  3628160.,  5562656.,  5587520.,  5612384.,  5637248.,
      7304072.,  7335312.,  7366552.,  7397792.,  8965936.,  9003616.,
      9041296.,  9078976.,  10547224., 10591408., 10635592., 10679776.,
      10658392., 10703024., 10747656., 10792288., 10769560., 10814640.,
      10859720., 10904800., 10880728., 10926256., 10971784., 11017312.,
      9517616.,  9556832.,  9596048.,  9635264.,  8248392.,  8281232.,
      8314072.,  8346912.,  7074080.,  7100480.,  7126880.,  7153280.,
      7747944.,  7780624.,  7813304.,  7845984.,  10031722., 10072772.,
      10113822., 10154872., 12209276., 12258776., 12308276., 12357776.,
      14279326., 14337356., 14395386., 14453416., 14421742., 14480332.,
      14538922., 14597512., 14025534., 14082636., 14139738., 14196840.,
      13662094., 13717708., 13773322., 13828936., 11778876., 11826200.,
      11873524., 11920848., 10017754., 10056708., 10095662., 10134616.,
      8380008.,  8410512.,  8441016.,  8471520.,  7580592.,  7613536.,
      7646480.,  7679424.,  9889612.,  9931032.,  9972452.,  10013872.,
      12094152., 12144144., 12194136., 12244128., 14192676., 14251336.,
      14309996., 14368656., 14353796., 14413128., 14472460., 14531792.,
      14205668., 14263624., 14321580., 14379536., 14090308., 14146888.,
      14203468., 14260048., 12257608., 12305808., 12354008., 12402208.,
      10546796., 10586520., 10626244., 10665968., 8959408.,  8990560.,
      9021712.,  9052864.,  7864312.,  7898160.,  7932008.,  7965856.,
      10300462., 10343052., 10385642., 10428232., 12629524., 12680968.,
      12732412., 12783856., 14849706., 14910116., 14970526., 15030936.,
      15016986., 15078180., 15139374., 15200568., 15104394., 15164324.,
      15224254., 15284184., 15224570., 15283236., 15341902., 15400568.,
      13328468., 13378504., 13428540., 13478576., 10509822., 10551116.,
      10592410., 10633704., 7819000.,  7851440.,  7883880.,  7916320.,
      7650936.,  7681072.,  7711208.,  7741344.,  9345870.,  9383820.,
      9421770.,  9459720.,  10948564., 10994440., 11040316., 11086192.,
      12457226., 12511140., 12565054., 12618968., 12624506., 12679204.,
      12733902., 12788600., 11892714., 11946148., 11999582., 12053016.,
      11193690., 11245860., 11298030., 11350200., 9131540.,  9176008.,
      9220476.,  9264944.,  7180574.,  7217228.,  7253882.,  7290536.,
      5342584.,  5371312.,  5400040.,  5428768.,  4686000.,  4710240.,
      4734480.,  4758720.,  5749900.,  5780440.,  5810980.,  5841520.,
      6741576.,  6778512.,  6815448.,  6852384.,  7659492.,  7702920.,
      7746348.,  7789776.,  7802692.,  7846792.,  7890892.,  7934992.,
      7276196.,  7318920.,  7361644.,  7404368.,  6782468.,  6823816.,
      6865164.,  6906512.,  5528776.,  5563920.,  5599064.,  5634208.,
      4364716.,  4393560.,  4422404.,  4451248.,  3291824.,  3314272.,
      3336720.,  3359168.,  2730216.,  2747920.,  2765624.,  2783328.,
      3426250.,  3448580.,  3470910.,  3493240.,  4074428.,  4101464.,
      4128500.,  4155536.,  4673470.,  4705292.,  4737114.,  4768936.,
      4805134.,  4837516.,  4869898.,  4902280.,  4496478.,  4527372.,
      4558266.,  4589160.,  4220590.,  4249996.,  4279402.,  4308808.,
      3524220.,  3549080.,  3573940.,  3598800.,  2891578.,  2911812.,
      2932046.,  2952280.,  2323944.,  2339472.,  2355000.,  2370528.,
      1588000.,  1598528.,  1609056.,  1619584.,  1921800.,  1935120.,
      1948440.,  1961760.,  2228272.,  2244448.,  2260624.,  2276800.,
      2506392.,  2525488.,  2544584.,  2563680.,  2606296.,  2625840.,
      2645384.,  2664928.,  2495256.,  2513200.,  2531144.,  2549088.,
      2416984.,  2433328.,  2449672.,  2466016.,  1976112.,  1989728.,
      2003344.,  2016960.,  1568712.,  1579536.,  1590360.,  1601184.,
      1195808.,  1203776.,  1211744.,  1219712.,  2724128.,  2736704.,
      2749280.,  2761856.,  3583880.,  3599760.,  3615640.,  3631520.,
      4413232.,  4432480.,  4451728.,  4470976.,  5211160.,  5233840.,
      5256520.,  5279200.,  5322328.,  5345456.,  5368584.,  5391712.,
      5433496.,  5457072.,  5480648.,  5504224.,  5544664.,  5568688.,
      5592712.,  5616736.,  4866608.,  4887392.,  4908176.,  4928960.,
      4233288.,  4250768.,  4268248.,  4285728.,  3645728.,  3659840.,
      3673952.,  3688064.,  3978600.,  3995920.,  4013240.,  4030560.,
      5178730.,  5200580.,  5222430.,  5244280.,  6334076.,  6360536.,
      6386996.,  6413456.,  7443358.,  7474508.,  7505658.,  7536808.,
      7585774.,  7617484.,  7649194.,  7680904.,  7728190.,  7760460.,
      7792730.,  7825000.,  7870606.,  7903436.,  7936266.,  7969096.,
      6858044.,  6886424.,  6914804.,  6943184.,  5906138.,  5929988.,
      5953838.,  5977688.,  5016168.,  5035408.,  5054648.,  5073888.,
      5182384.,  5205088.,  5227792.,  5250496.,  6699340.,  6727960.,
      6756580.,  6785200.,  8152776.,  8187408.,  8222040.,  8256672.,
      9541156.,  9581896.,  9622636.,  9663376.,  9702276.,  9743688.,
      9785100.,  9826512.,  9863396.,  9905480.,  9947564.,  9989648.,
      10024516., 10067272., 10110028., 10152784., 8688968.,  8725904.,
      8762840.,  8799776.,  7434348.,  7465368.,  7496388.,  7527408.,
      6262192.,  6287200.,  6312208.,  6337216.,  6263800.,  6292528.,
      6321256.,  6349984.,  8056110.,  8092300.,  8128490.,  8164680.,
      9761812.,  9805576.,  9849340.,  9893104.,  11379114., 11430564.,
      11482014., 11533464., 11546394., 11598628., 11650862., 11703096.,
      11713674., 11766692., 11819710., 11872728., 11880954., 11934756.,
      11988558., 12042360., 10251860., 10298312., 10344764., 10391216.,
      8728318.,  8767308.,  8806298.,  8845288.,  7312120.,  7343536.,
      7374952.,  7406368.,  7221880.,  7255088.,  7288296.,  7321504.,
      9270350.,  9312140.,  9353930.,  9395720.,  11214292., 11264776.,
      11315260., 11365744., 13051914., 13111204., 13170494., 13229784.,
      13219194., 13279268., 13339342., 13399416., 13386474., 13447332.,
      13508190., 13569048., 13553754., 13615396., 13677038., 13738680.,
      11678740., 11731912., 11785084., 11838256., 9927198.,  9971788.,
      10016378., 10060968., 8300920.,  8336816.,  8372712.,  8408608.,
      6432944.,  6463328.,  6493712.,  6524096.,  8363660.,  8401880.,
      8440100.,  8478320.,  10197576., 10243728., 10289880., 10336032.,
      11933156., 11987336., 12041516., 12095696., 12076356., 12131208.,
      12186060., 12240912., 12219556., 12275080., 12330604., 12386128.,
      12362756., 12418952., 12475148., 12531344., 10733768., 10782224.,
      10830680., 10879136., 9218988.,  9259608.,  9300228.,  9340848.,
      7819952.,  7852640.,  7885328.,  7918016.,  6309096.,  6336016.,
      6362936.,  6389856.,  8299210.,  8333060.,  8366910.,  8400760.,
      10204604., 10245464., 10286324., 10327184., 12023998., 12071948.,
      12119898., 12167848., 12155662., 12204172., 12252682., 12301192.,
      12287326., 12336396., 12385466., 12434536., 12418990., 12468620.,
      12518250., 12567880., 10870908., 10913688., 10956468., 10999248.,
      9423418.,  9459268.,  9495118.,  9530968.,  8077800.,  8106640.,
      8135480.,  8164320.,  5999392.,  6022208.,  6045024.,  6067840.,
      7313160.,  7341840.,  7370520.,  7399200.,  8550448.,  8585056.,
      8619664.,  8654272.,  9710232.,  9750832.,  9791432.,  9832032.,
      9810136.,  9851184.,  9892232.,  9933280.,  9910040.,  9951536.,
      9993032.,  10034528., 10009944., 10051888., 10093832., 10135776.,
      8326960.,  8363104.,  8399248.,  8435392.,  6726600.,  6756880.,
      6787160.,  6817440.,  5209888.,  5234240.,  5258592.,  5282944.};
  const std::array<int, 4> in_shape = {{3, 8, 10, 4}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x8x10x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6026154.,  6052516.,  6078878.,  6105240.,  6193434.,  6220580.,
      6247726.,  6274872.,  6360714.,  6388644.,  6416574.,  6444504.,
      6527994.,  6556708.,  6585422.,  6614136.,  7698954.,  7733156.,
      7767358.,  7801560.,  7866234.,  7901220.,  7936206.,  7971192.,
      8033514.,  8069284.,  8105054.,  8140824.,  8200794.,  8237348.,
      8273902.,  8310456.,  14849706., 14910116., 14970526., 15030936.,
      15016986., 15078180., 15139374., 15200568., 15104394., 15164324.,
      15224254., 15284184., 15224570., 15283236., 15341902., 15400568.,
      12457226., 12511140., 12565054., 12618968., 12624506., 12679204.,
      12733902., 12788600., 11892714., 11946148., 11999582., 12053016.,
      11193690., 11245860., 11298030., 11350200., 11379114., 11430564.,
      11482014., 11533464., 11546394., 11598628., 11650862., 11703096.,
      11713674., 11766692., 11819710., 11872728., 11880954., 11934756.,
      11988558., 12042360., 13051914., 13111204., 13170494., 13229784.,
      13219194., 13279268., 13339342., 13399416., 13386474., 13447332.,
      13508190., 13569048., 13553754., 13615396., 13677038., 13738680.};
  const std::array<int, 4> in_shape = {{3, 8, 10, 4}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x9x8x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      9724.,   12390.,  15142.,  17976.,  18970.,  16450.,  13860.,  11204.,
      14660.,  18525.,  22460.,  26460.,  27580.,  23765.,  19900.,  15990.,
      20150.,  25315.,  30519.,  35756.,  36953.,  31689.,  26410.,  21122.,
      25970.,  32480.,  38983.,  45472.,  46697.,  39886.,  33110.,  26376.,
      31906.,  39760.,  47551.,  55272.,  56497.,  48118.,  39830.,  31640.,
      37842.,  47040.,  56119.,  65072.,  66297.,  56350.,  46550.,  36904.,
      29618.,  36685.,  43605.,  50372.,  51275.,  43407.,  35710.,  28190.,
      21960.,  27075.,  32030.,  36820.,  37450.,  31535.,  25800.,  20250.,
      15092.,  18490.,  21730.,  24808.,  25214.,  21070.,  17100.,  13308.,
      52348.,  64950.,  77350.,  89544.,  90538.,  76930.,  63540.,  50372.,
      62900.,  77925.,  92660.,  107100., 108220., 91805.,  75700.,  59910.,
      71990.,  89035.,  105687., 121940., 123137., 104265., 85810.,  67778.,
      79394.,  98000.,  116095., 133672., 134897., 113974., 93590.,  73752.,
      85330.,  105280., 124663., 143472., 144697., 122206., 100310., 79016.,
      91266.,  112560., 133231., 153272., 154497., 130438., 107030., 84280.,
      69362.,  85285.,  100629., 115388., 116291., 97839.,  79990.,  62750.,
      50040.,  61275.,  71990.,  82180.,  82810.,  69335.,  56400.,  44010.,
      33524.,  40810.,  47650.,  54040.,  54446.,  45262.,  36540.,  28284.,
      94972.,  117510., 139558., 161112., 162106., 137410., 113220., 89540.,
      111140., 137325., 162860., 187740., 188860., 159845., 131500., 103830.,
      123830., 152755., 180855., 208124., 209321., 176841., 145210., 114434.,
      132818., 163520., 193207., 221872., 223097., 188062., 154070., 121128.,
      138754., 170800., 201775., 231672., 232897., 196294., 160790., 126392.,
      144690., 178080., 210343., 241472., 242697., 204526., 167510., 131656.,
      109106., 133885., 157653., 180404., 181307., 152271., 124270., 97310.,
      78120.,  95475.,  111950., 127540., 128170., 107135., 87000.,  67770.,
      51956.,  63130.,  73570.,  83272.,  83678.,  69454.,  55980.,  43260.};
  const std::array<int, 4> in_shape = {{3, 9, 8, 1}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x9x8x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      45472.,  46697.,  55272.,  56497.,  65072.,  66297.,
      133672., 134897., 143472., 144697., 153272., 154497.,
      221872., 223097., 231672., 232897., 241472., 242697.};
  const std::array<int, 4> in_shape = {{3, 9, 8, 1}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x9x8x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      19216.,  19448.,  24480.,  24780.,  29912.,  30284.,  35504.,  35952.,
      37464.,  37940.,  32480.,  32900.,  27360.,  27720.,  22112.,  22408.,
      28950.,  29320.,  36575.,  37050.,  44335.,  44920.,  52220.,  52920.,
      54425.,  55160.,  46885.,  47530.,  39250.,  39800.,  31530.,  31980.,
      39760.,  40300.,  49940.,  50630.,  60192.,  61038.,  70504.,  71512.,
      72856.,  73906.,  62460.,  63378.,  52040.,  52820.,  41608.,  42244.,
      51198.,  51940.,  64015.,  64960.,  76811.,  77966.,  89572.,  90944.,
      91973.,  93394.,  78533.,  79772.,  65170.,  66220.,  51898.,  52752.,
      62846.,  63812.,  78295.,  79520.,  93611.,  95102.,  108780., 110544.,
      111181., 112994., 94661.,  96236.,  78330.,  79660.,  62202.,  63280.,
      74494.,  75684.,  92575.,  94080.,  110411., 112238., 127988., 130144.,
      130389., 132594., 110789., 112700., 91490.,  93100.,  72506.,  73808.,
      58120.,  59236.,  71960.,  73370.,  85500.,  87210.,  98728.,  100744.,
      100492., 102550., 85032.,  86814.,  69920.,  71420.,  55168.,  56380.,
      42910.,  43920.,  52875.,  54150.,  62515.,  64060.,  71820.,  73640.,
      73045.,  74900.,  61465.,  63070.,  50250.,  51600.,  39410.,  40500.,
      29312.,  30184.,  35880.,  36980.,  42128.,  43460.,  48048.,  49616.,
      48832.,  50428.,  40760.,  42140.,  33040.,  34200.,  25680.,  26616.,
      103312., 104696., 128160., 129900., 152600., 154700., 176624., 179088.,
      178584., 181076., 151712., 153860., 125280., 127080., 99296.,  100744.,
      123990., 125800., 153575., 155850., 182575., 185320., 210980., 214200.,
      213185., 216440., 180805., 183610., 149050., 151400., 117930., 119820.,
      141712., 143980., 175220., 178070., 207936., 211374., 239848., 243880.,
      242200., 246274., 205020., 208530., 168680., 171620., 133192., 135556.,
      156030., 158788., 192535., 196000., 228011., 232190., 262444., 267344.,
      264845., 269794., 223685., 227948., 183610., 187180., 144634., 147504.,
      167678., 170660., 206815., 210560., 244811., 249326., 281652., 286944.,
      284053., 289394., 239813., 244412., 196770., 200620., 154938., 158032.,
      179326., 182532., 221095., 225120., 261611., 266462., 300860., 306544.,
      303261., 308994., 255941., 260876., 209930., 214060., 165242., 168560.,
      135880., 138724., 167000., 170570., 196956., 201258., 225736., 230776.,
      227500., 232582., 191304., 195678., 156320., 159980., 122560., 125500.,
      97630.,  100080., 119475., 122550., 140275., 143980., 160020., 164360.,
      161245., 165620., 134905., 138670., 109650., 112800., 85490.,  88020.,
      65024.,  67048.,  79080.,  81620.,  92240.,  95300.,  104496., 108080.,
      105280., 108892., 87416.,  90524.,  70480.,  73080.,  54480.,  56568.,
      187408., 189944., 231840., 235020., 275288., 279116., 317744., 322224.,
      319704., 324212., 270944., 274820., 223200., 226440., 176480., 179080.,
      219030., 222280., 270575., 274650., 320815., 325720., 369740., 375480.,
      371945., 377720., 314725., 319690., 258850., 263000., 204330., 207660.,
      243664., 247660., 300500., 305510., 355680., 361710., 409192., 416248.,
      411544., 418642., 347580., 353682., 285320., 290420., 224776., 228868.,
      260862., 265636., 321055., 327040., 379211., 386414., 435316., 443744.,
      437717., 446194., 368837., 376124., 302050., 308140., 237370., 242256.,
      272510., 277508., 335335., 341600., 396011., 403550., 454524., 463344.,
      456925., 465794., 384965., 392588., 315210., 321580., 247674., 252784.,
      284158., 289380., 349615., 356160., 412811., 420686., 473732., 482944.,
      476133., 485394., 401093., 409052., 328370., 335020., 257978., 263312.,
      213640., 218212., 262040., 267770., 308412., 315306., 352744., 360808.,
      354508., 362614., 297576., 304542., 242720., 248540., 189952., 194620.,
      152350., 156240., 186075., 190950., 218035., 223900., 248220., 255080.,
      249445., 256340., 208345., 214270., 169050., 174000., 131570., 135540.,
      100736., 103912., 122280., 126260., 142352., 147140., 160944., 166544.,
      161728., 167356., 134072., 138908., 107920., 111960., 83280.,  86520.};
  const std::array<int, 4> in_shape = {{3, 9, 8, 1}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x9x8x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      89572.,  90944.,  91973.,  93394.,  108780., 110544., 111181., 112994.,
      127988., 130144., 130389., 132594., 262444., 267344., 264845., 269794.,
      281652., 286944., 284053., 289394., 300860., 306544., 303261., 308994.,
      435316., 443744., 437717., 446194., 454524., 463344., 456925., 465794.,
      473732., 482944., 476133., 485394.};
  const std::array<int, 4> in_shape = {{3, 9, 8, 1}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x9x8x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      38200.,  38432.,  38664.,  38896.,  48660.,  48960.,  49260.,  49560.,
      59452.,  59824.,  60196.,  60568.,  70560.,  71008.,  71456.,  71904.,
      74452.,  74928.,  75404.,  75880.,  64540.,  64960.,  65380.,  65800.,
      54360.,  54720.,  55080.,  55440.,  43928.,  44224.,  44520.,  44816.,
      57530.,  57900.,  58270.,  58640.,  72675.,  73150.,  73625.,  74100.,
      88085.,  88670.,  89255.,  89840.,  103740., 104440., 105140., 105840.,
      108115., 108850., 109585., 110320., 93125.,  93770.,  94415.,  95060.,
      77950.,  78500.,  79050.,  79600.,  62610.,  63060.,  63510.,  63960.,
      78980.,  79520.,  80060.,  80600.,  99190.,  99880.,  100570., 101260.,
      119538., 120384., 121230., 122076., 140000., 141008., 142016., 143024.,
      144662., 145712., 146762., 147812., 124002., 124920., 125838., 126756.,
      103300., 104080., 104860., 105640., 82580.,  83216.,  83852.,  84488.,
      101654., 102396., 103138., 103880., 127085., 128030., 128975., 129920.,
      152467., 153622., 154777., 155932., 177772., 179144., 180516., 181888.,
      182525., 183946., 185367., 186788., 155827., 157066., 158305., 159544.,
      129290., 130340., 131390., 132440., 102942., 103796., 104650., 105504.,
      124726., 125692., 126658., 127624., 155365., 156590., 157815., 159040.,
      185731., 187222., 188713., 190204., 215796., 217560., 219324., 221088.,
      220549., 222362., 224175., 225988., 187747., 189322., 190897., 192472.,
      155330., 156660., 157990., 159320., 123326., 124404., 125482., 126560.,
      147798., 148988., 150178., 151368., 183645., 185150., 186655., 188160.,
      218995., 220822., 222649., 224476., 253820., 255976., 258132., 260288.,
      258573., 260778., 262983., 265188., 219667., 221578., 223489., 225400.,
      181370., 182980., 184590., 186200., 143710., 145012., 146314., 147616.,
      115124., 116240., 117356., 118472., 142510., 143920., 145330., 146740.,
      169290., 171000., 172710., 174420., 195440., 197456., 199472., 201488.,
      198926., 200984., 203042., 205100., 168282., 170064., 171846., 173628.,
      138340., 139840., 141340., 142840., 109124., 110336., 111548., 112760.,
      84810.,  85820.,  86830.,  87840.,  104475., 105750., 107025., 108300.,
      123485., 125030., 126575., 128120., 141820., 143640., 145460., 147280.,
      144235., 146090., 147945., 149800., 121325., 122930., 124535., 126140.,
      99150.,  100500., 101850., 103200., 77730.,  78820.,  79910.,  81000.,
      57752.,  58624.,  59496.,  60368.,  70660.,  71760.,  72860.,  73960.,
      82924.,  84256.,  85588.,  86920.,  94528.,  96096.,  97664.,  99232.,
      96068.,  97664.,  99260.,  100856., 80140.,  81520.,  82900.,  84280.,
      64920.,  66080.,  67240.,  68400.,  50424.,  51360.,  52296.,  53232.,
      205240., 206624., 208008., 209392., 254580., 256320., 258060., 259800.,
      303100., 305200., 307300., 309400., 350784., 353248., 355712., 358176.,
      354676., 357168., 359660., 362152., 301276., 303424., 305572., 307720.,
      248760., 250560., 252360., 254160., 197144., 198592., 200040., 201488.,
      246170., 247980., 249790., 251600., 304875., 307150., 309425., 311700.,
      362405., 365150., 367895., 370640., 418740., 421960., 425180., 428400.,
      423115., 426370., 429625., 432880., 358805., 361610., 364415., 367220.,
      295750., 298100., 300450., 302800., 233970., 235860., 237750., 239640.,
      281156., 283424., 285692., 287960., 347590., 350440., 353290., 356140.,
      412434., 415872., 419310., 422748., 475664., 479696., 483728., 487760.,
      480326., 484400., 488474., 492548., 406530., 410040., 413550., 417060.,
      334420., 337360., 340300., 343240., 264020., 266384., 268748., 271112.,
      309302., 312060., 314818., 317576., 381605., 385070., 388535., 392000.,
      451843., 456022., 460201., 464380., 519988., 524888., 529788., 534688.,
      524741., 529690., 534639., 539588., 443107., 447370., 451633., 455896.,
      363650., 367220., 370790., 374360., 286398., 289268., 292138., 295008.,
      332374., 335356., 338338., 341320., 409885., 413630., 417375., 421120.,
      485107., 489622., 494137., 498652., 558012., 563304., 568596., 573888.,
      562765., 568106., 573447., 578788., 475027., 479626., 484225., 488824.,
      389690., 393540., 397390., 401240., 306782., 309876., 312970., 316064.,
      355446., 358652., 361858., 365064., 438165., 442190., 446215., 450240.,
      518371., 523222., 528073., 532924., 596036., 601720., 607404., 613088.,
      600789., 606522., 612255., 617988., 506947., 511882., 516817., 521752.,
      415730., 419860., 423990., 428120., 327166., 330484., 333802., 337120.,
      268916., 271760., 274604., 277448., 330430., 334000., 337570., 341140.,
      389610., 393912., 398214., 402516., 446432., 451472., 456512., 461552.,
      449918., 455000., 460082., 465164., 378234., 382608., 386982., 391356.,
      308980., 312640., 316300., 319960., 242180., 245120., 248060., 251000.,
      192810., 195260., 197710., 200160., 235875., 238950., 242025., 245100.,
      276845., 280550., 284255., 287960., 315700., 320040., 324380., 328720.,
      318115., 322490., 326865., 331240., 266045., 269810., 273575., 277340.,
      216150., 219300., 222450., 225600., 168450., 170980., 173510., 176040.,
      128024., 130048., 132072., 134096., 155620., 158160., 160700., 163240.,
      181420., 184480., 187540., 190600., 205408., 208992., 212576., 216160.,
      206948., 210560., 214172., 217784., 171724., 174832., 177940., 181048.,
      138360., 140960., 143560., 146160., 106872., 108960., 111048., 113136.,
      372280., 374816., 377352., 379888., 460500., 463680., 466860., 470040.,
      546748., 550576., 554404., 558232., 631008., 635488., 639968., 644448.,
      634900., 639408., 643916., 648424., 538012., 541888., 545764., 549640.,
      443160., 446400., 449640., 452880., 350360., 352960., 355560., 358160.,
      434810., 438060., 441310., 444560., 537075., 541150., 545225., 549300.,
      636725., 641630., 646535., 651440., 733740., 739480., 745220., 750960.,
      738115., 743890., 749665., 755440., 624485., 629450., 634415., 639380.,
      513550., 517700., 521850., 526000., 405330., 408660., 411990., 415320.,
      483332., 487328., 491324., 495320., 595990., 601000., 606010., 611020.,
      705330., 711360., 717390., 723420., 811328., 818384., 825440., 832496.,
      815990., 823088., 830186., 837284., 689058., 695160., 701262., 707364.,
      565540., 570640., 575740., 580840., 445460., 449552., 453644., 457736.,
      516950., 521724., 526498., 531272., 636125., 642110., 648095., 654080.,
      751219., 758422., 765625., 772828., 862204., 870632., 879060., 887488.,
      866957., 875434., 883911., 892388., 730387., 737674., 744961., 752248.,
      598010., 604100., 610190., 616280., 469854., 474740., 479626., 484512.,
      540022., 545020., 550018., 555016., 664405., 670670., 676935., 683200.,
      784483., 792022., 799561., 807100., 900228., 909048., 917868., 926688.,
      904981., 913850., 922719., 931588., 762307., 769930., 777553., 785176.,
      624050., 630420., 636790., 643160., 490238., 495348., 500458., 505568.,
      563094., 568316., 573538., 578760., 692685., 699230., 705775., 712320.,
      817747., 825622., 833497., 841372., 938252., 947464., 956676., 965888.,
      943005., 952266., 961527., 970788., 794227., 802186., 810145., 818104.,
      650090., 656740., 663390., 670040., 510622., 515956., 521290., 526624.,
      422708., 427280., 431852., 436424., 518350., 524080., 529810., 535540.,
      609930., 616824., 623718., 630612., 697424., 705488., 713552., 721616.,
      700910., 709016., 717122., 725228., 588186., 595152., 602118., 609084.,
      479620., 485440., 491260., 497080., 375236., 379904., 384572., 389240.,
      300810., 304700., 308590., 312480., 367275., 372150., 377025., 381900.,
      430205., 436070., 441935., 447800., 489580., 496440., 503300., 510160.,
      491995., 498890., 505785., 512680., 410765., 416690., 422615., 428540.,
      333150., 338100., 343050., 348000., 259170., 263140., 267110., 271080.,
      198296., 201472., 204648., 207824., 240580., 244560., 248540., 252520.,
      279916., 284704., 289492., 294280., 316288., 321888., 327488., 333088.,
      317828., 323456., 329084., 334712., 263308., 268144., 272980., 277816.,
      211800., 215840., 219880., 223920., 163320., 166560., 169800., 173040.};
  const std::array<int, 4> in_shape = {{3, 9, 8, 1}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x9x8x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      177772., 179144., 180516., 181888., 182525., 183946., 185367., 186788.,
      215796., 217560., 219324., 221088., 220549., 222362., 224175., 225988.,
      253820., 255976., 258132., 260288., 258573., 260778., 262983., 265188.,
      519988., 524888., 529788., 534688., 524741., 529690., 534639., 539588.,
      558012., 563304., 568596., 573888., 562765., 568106., 573447., 578788.,
      596036., 601720., 607404., 613088., 600789., 606522., 612255., 617988.,
      862204., 870632., 879060., 887488., 866957., 875434., 883911., 892388.,
      900228., 909048., 917868., 926688., 904981., 913850., 922719., 931588.,
      938252., 947464., 956676., 965888., 943005., 952266., 961527., 970788.};
  const std::array<int, 4> in_shape = {{3, 9, 8, 1}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x9x8x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      76160.,   97080.,   118688.,  140952.,  148848.,  129104.,  108800.,
      87968.,   115220.,  145625.,  176590.,  208075.,  216965.,  186970.,
      156575.,  125820.,  158704.,  199400.,  240408.,  281680.,  291172.,
      249696.,  208100.,  166432.,  204820.,  256165.,  307454.,  358631.,
      368333.,  314594.,  261135.,  208012.,  251860.,  313845.,  375326.,
      436247.,  445949.,  379778.,  314335.,  249676.,  298900.,  371525.,
      443198.,  513863.,  523565.,  444962.,  367535.,  291340.,  233632.,
      289340.,  343872.,  397180.,  404320.,  342216.,  281480.,  222160.,
      172900.,  213125.,  252070.,  289695.,  294665.,  248050.,  202875.,
      159180.,  118496.,  145120.,  170480.,  194544.,  197736.,  165152.,
      133960.,  104192.,  414848.,  514680.,  612896.,  709464.,  717360.,
      609488.,  503360.,  399008.,  498260.,  617225.,  733870.,  848155.,
      857045.,  726970.,  599375.,  474300.,  569968.,  704840.,  836568.,
      965104.,  974596.,  825120.,  678980.,  536224.,  628180.,  775285.,
      918302.,  1057175., 1066877., 901250.,  739935.,  582988.,  675220.,
      832965.,  986174.,  1134791., 1144493., 966434.,  793135.,  624652.,
      722260.,  890645.,  1054046., 1212407., 1222109., 1031618., 846335.,
      666316.,  548128.,  673820.,  794880.,  911260.,  918400.,  772488.,
      631400.,  495184.,  394660.,  483125.,  567430.,  647535.,  652505.,
      546130.,  444075.,  346380.,  263648.,  320800.,  374384.,  424368.,
      427560.,  355232.,  286600.,  221696.,  753536.,  932280.,  1107104.,
      1277976., 1285872., 1089872., 897920.,  710048.,  881300.,  1088825.,
      1291150., 1488235., 1497125., 1266970., 1042175., 822780.,  981232.,
      1210280., 1432728., 1648528., 1658020., 1400544., 1149860., 906016.,
      1051540., 1294405., 1529150., 1755719., 1765421., 1487906., 1218735.,
      957964.,  1098580., 1352085., 1597022., 1833335., 1843037., 1553090.,
      1271935., 999628.,  1145620., 1409765., 1664894., 1910951., 1920653.,
      1618274., 1325135., 1041292., 862624.,  1058300., 1245888., 1425340.,
      1432480., 1202760., 981320.,  768208.,  616420.,  753125.,  882790.,
      1005375., 1010345., 844210.,  685275.,  533580.,  408800.,  496480.,
      578288.,  654192.,  657384.,  545312.,  439240.,  339200.};
  const std::array<int, 4> in_shape = {{3, 9, 8, 2}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x9x8x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      358631.,  368333.,  436247.,  445949.,  513863.,  523565.,
      1057175., 1066877., 1134791., 1144493., 1212407., 1222109.,
      1755719., 1765421., 1833335., 1843037., 1910951., 1920653.};
  const std::array<int, 4> in_shape = {{3, 9, 8, 2}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x9x8x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      151408.,  152320.,  192980.,  194160.,  235912.,  237376.,  280140.,
      281904.,  295820.,  297696.,  256552.,  258208.,  216180.,  217600.,
      174768.,  175936.,  228980.,  230440.,  289375.,  291250.,  350870.,
      353180.,  413385.,  416150.,  431025.,  433930.,  371390.,  373940.,
      310975.,  313150.,  249860.,  251640.,  315272.,  317408.,  396070.,
      398800.,  477468.,  480816.,  559370.,  563360.,  578186.,  582344.,
      495756.,  499392.,  413110.,  416200.,  330344.,  332864.,  406700.,
      409640.,  508585.,  512330.,  610330.,  614908.,  711823.,  717262.,
      731031.,  736666.,  624274.,  629188.,  518105.,  522270.,  412636.,
      416024.,  499884.,  503720.,  622825.,  627690.,  744730.,  750652.,
      865487.,  872494.,  884695.,  891898.,  753298.,  759556.,  623385.,
      628670.,  495068.,  499352.,  593068.,  597800.,  737065.,  743050.,
      879130.,  886396.,  1019151., 1027726., 1038359., 1047130., 882322.,
      889924.,  728665.,  735070.,  577500.,  582680.,  462824.,  467264.,
      573070.,  578680.,  680940.,  687744.,  786338.,  794360.,  800450.,
      808640.,  677340.,  684432.,  556990.,  562960.,  439496.,  444320.,
      341780.,  345800.,  421175.,  426250.,  497990.,  504140.,  572145.,
      579390.,  581945.,  589330.,  489710.,  496100.,  400375.,  405750.,
      314020.,  318360.,  233520.,  236992.,  285860.,  290240.,  335656.,
      340960.,  382844.,  389088.,  389116.,  395472.,  324808.,  330304.,
      263300.,  267920.,  204656.,  208384.,  824176.,  829696.,  1022420.,
      1029360., 1217416., 1225792., 1409100., 1418928., 1424780., 1434720.,
      1210408., 1218976., 999540.,  1006720., 792240.,  798016.,  989300.,
      996520.,  1225375., 1234450., 1456790., 1467740., 1683465., 1696310.,
      1701105., 1714090., 1442750., 1453940., 1189375., 1198750., 941060.,
      948600.,  1130888., 1139936., 1398310., 1409680., 1659420., 1673136.,
      1914122., 1930208., 1932938., 1949192., 1636236., 1650240., 1346230.,
      1357960., 1063016., 1072448., 1245356., 1256360., 1536745., 1550570.,
      1819930., 1836604., 2094799., 2114350., 2114007., 2133754., 1785490.,
      1802500., 1465625., 1479870., 1154524., 1165976., 1338540., 1350440.,
      1650985., 1665930., 1954330., 1972348., 2248463., 2269582., 2267671.,
      2288986., 1914514., 1932868., 1570905., 1586270., 1236956., 1249304.,
      1431724., 1444520., 1765225., 1781290., 2088730., 2108092., 2402127.,
      2424814., 2421335., 2444218., 2043538., 2063236., 1676185., 1692670.,
      1319388., 1332632., 1084904., 1096256., 1333390., 1347640., 1572588.,
      1589760., 1802402., 1822520., 1816514., 1836800., 1527516., 1544976.,
      1248190., 1262800., 978632.,  990368.,  779540.,  789320.,  953975.,
      966250.,  1120070., 1134860., 1277745., 1295070., 1287545., 1305010.,
      1077230., 1092260., 875575.,  888150.,  682660.,  692760.,  519216.,
      527296.,  631460.,  641600.,  736552.,  748768.,  834428.,  848736.,
      840700.,  855120.,  698056.,  710464.,  562820.,  573200.,  435056.,
      443392.,  1496944., 1507072., 1851860., 1864560., 2198920., 2214208.,
      2538060., 2555952., 2553740., 2571744., 2164264., 2179744., 1782900.,
      1795840., 1409712., 1420096., 1749620., 1762600., 2161375., 2177650.,
      2562710., 2582300., 2953545., 2976470., 2971185., 2994250., 2514110.,
      2533940., 2067775., 2084350., 1632260., 1645560., 1946504., 1962464.,
      2400550., 2420560., 2841372., 2865456., 3268874., 3297056., 3287690.,
      3316040., 2776716., 2801088., 2279350., 2299720., 1795688., 1812032.,
      2084012., 2103080., 2564905., 2588810., 3029530., 3058300., 3477775.,
      3511438., 3496983., 3530842., 2946706., 2975812., 2413145., 2437470.,
      1896412., 1915928., 2177196., 2197160., 2679145., 2704170., 3163930.,
      3194044., 3631439., 3666670., 3650647., 3686074., 3075730., 3106180.,
      2518425., 2543870., 1978844., 1999256., 2270380., 2291240., 2793385.,
      2819530., 3298330., 3329788., 3785103., 3821902., 3804311., 3841306.,
      3204754., 3236548., 2623705., 2650270., 2061276., 2082584., 1706984.,
      1725248., 2093710., 2116600., 2464236., 2491776., 2818466., 2850680.,
      2832578., 2864960., 2377692., 2405520., 1939390., 1962640., 1517768.,
      1536416., 1217300., 1232840., 1486775., 1506250., 1742150., 1765580.,
      1983345., 2010750., 1993145., 2020690., 1664750., 1688420., 1350775.,
      1370550., 1051300., 1067160., 804912.,  817600.,  977060.,  992960.,
      1137448., 1156576., 1286012., 1308384., 1292284., 1314768., 1071304.,
      1090624., 862340.,  878480.,  665456.,  678400.};
  const std::array<int, 4> in_shape = {{3, 9, 8, 2}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x9x8x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      711823.,  717262.,  731031.,  736666.,  865487.,  872494.,
      884695.,  891898.,  1019151., 1027726., 1038359., 1047130.,
      2094799., 2114350., 2114007., 2133754., 2248463., 2269582.,
      2267671., 2288986., 2402127., 2424814., 2421335., 2444218.,
      3477775., 3511438., 3496983., 3530842., 3631439., 3666670.,
      3650647., 3686074., 3785103., 3821902., 3804311., 3841306.};
  const std::array<int, 4> in_shape = {{3, 9, 8, 2}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x9x8x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      301904.,  302816.,  303728.,  304640.,  384780.,  385960.,  387140.,
      388320.,  470360.,  471824.,  473288.,  474752.,  558516.,  560280.,
      562044.,  563808.,  589764.,  591640.,  593516.,  595392.,  511448.,
      513104.,  514760.,  516416.,  430940.,  432360.,  433780.,  435200.,
      348368.,  349536.,  350704.,  351872.,  456500.,  457960.,  459420.,
      460880.,  576875.,  578750.,  580625.,  582500.,  699430.,  701740.,
      704050.,  706360.,  824005.,  826770.,  829535.,  832300.,  859145.,
      862050.,  864955.,  867860.,  740230.,  742780.,  745330.,  747880.,
      619775.,  621950.,  624125.,  626300.,  497940.,  499720.,  501500.,
      503280.,  628408.,  630544.,  632680.,  634816.,  789410.,  792140.,
      794870.,  797600.,  951588.,  954936.,  958284.,  961632.,  1114750.,
      1118740., 1122730., 1126720., 1152214., 1156372., 1160530., 1164688.,
      987876.,  991512.,  995148.,  998784.,  823130.,  826220.,  829310.,
      832400.,  658168.,  660688.,  663208.,  665728.,  810460.,  813400.,
      816340.,  819280.,  1013425., 1017170., 1020915., 1024660., 1216082.,
      1220660., 1225238., 1229816., 1418207., 1423646., 1429085., 1434524.,
      1456427., 1462062., 1467697., 1473332., 1243634., 1248548., 1253462.,
      1258376., 1032045., 1036210., 1040375., 1044540., 821884.,  825272.,
      828660.,  832048.,  995932.,  999768.,  1003604., 1007440., 1240785.,
      1245650., 1250515., 1255380., 1483538., 1489460., 1495382., 1501304.,
      1723967., 1730974., 1737981., 1744988., 1762187., 1769390., 1776593.,
      1783796., 1500338., 1506596., 1512854., 1519112., 1241485., 1246770.,
      1252055., 1257340., 985852.,  990136.,  994420.,  998704.,  1181404.,
      1186136., 1190868., 1195600., 1468145., 1474130., 1480115., 1486100.,
      1750994., 1758260., 1765526., 1772792., 2029727., 2038302., 2046877.,
      2055452., 2067947., 2076718., 2085489., 2094260., 1757042., 1764644.,
      1772246., 1779848., 1450925., 1457330., 1463735., 1470140., 1149820.,
      1155000., 1160180., 1165360., 921208.,  925648.,  930088.,  934528.,
      1140530., 1146140., 1151750., 1157360., 1355076., 1361880., 1368684.,
      1375488., 1564654., 1572676., 1580698., 1588720., 1592710., 1600900.,
      1609090., 1617280., 1347588., 1354680., 1361772., 1368864., 1108010.,
      1113980., 1119950., 1125920., 874168.,  878992.,  883816.,  888640.,
      679540.,  683560.,  687580.,  691600.,  837275.,  842350.,  847425.,
      852500.,  989830.,  995980.,  1002130., 1008280., 1137045., 1144290.,
      1151535., 1158780., 1156505., 1163890., 1171275., 1178660., 973030.,
      979420.,  985810.,  992200.,  795375.,  800750.,  806125.,  811500.,
      623700.,  628040.,  632380.,  636720.,  463568.,  467040.,  470512.,
      473984.,  567340.,  571720.,  576100.,  580480.,  666008.,  671312.,
      676616.,  681920.,  759444.,  765688.,  771932.,  778176.,  771876.,
      778232.,  784588.,  790944.,  644120.,  649616.,  655112.,  660608.,
      521980.,  526600.,  531220.,  535840.,  405584.,  409312.,  413040.,
      416768.,  1642832., 1648352., 1653872., 1659392., 2037900., 2044840.,
      2051780., 2058720., 2426456., 2434832., 2443208., 2451584., 2808372.,
      2818200., 2828028., 2837856., 2839620., 2849560., 2859500., 2869440.,
      2412248., 2420816., 2429384., 2437952., 1991900., 1999080., 2006260.,
      2013440., 1578704., 1584480., 1590256., 1596032., 1971380., 1978600.,
      1985820., 1993040., 2441675., 2450750., 2459825., 2468900., 2902630.,
      2913580., 2924530., 2935480., 3354085., 3366930., 3379775., 3392620.,
      3389225., 3402210., 3415195., 3428180., 2874310., 2885500., 2896690.,
      2907880., 2369375., 2378750., 2388125., 2397500., 1874580., 1882120.,
      1889660., 1897200., 2252728., 2261776., 2270824., 2279872., 2785250.,
      2796620., 2807990., 2819360., 3305124., 3318840., 3332556., 3346272.,
      3812158., 3828244., 3844330., 3860416., 3849622., 3865876., 3882130.,
      3898384., 3258468., 3272472., 3286476., 3300480., 2680730., 2692460.,
      2704190., 2715920., 2116600., 2126032., 2135464., 2144896., 2479708.,
      2490712., 2501716., 2512720., 3059665., 3073490., 3087315., 3101140.,
      3623186., 3639860., 3656534., 3673208., 4170047., 4189598., 4209149.,
      4228700., 4208267., 4228014., 4247761., 4267508., 3553970., 3570980.,
      3587990., 3605000., 2917005., 2931250., 2945495., 2959740., 2297596.,
      2309048., 2320500., 2331952., 2665180., 2677080., 2688980., 2700880.,
      3287025., 3301970., 3316915., 3331860., 3890642., 3908660., 3926678.,
      3944696., 4475807., 4496926., 4518045., 4539164., 4514027., 4535342.,
      4556657., 4577972., 3810674., 3829028., 3847382., 3865736., 3126445.,
      3141810., 3157175., 3172540., 2461564., 2473912., 2486260., 2498608.,
      2850652., 2863448., 2876244., 2889040., 3514385., 3530450., 3546515.,
      3562580., 4158098., 4177460., 4196822., 4216184., 4781567., 4804254.,
      4826941., 4849628., 4819787., 4842670., 4865553., 4888436., 4067378.,
      4087076., 4106774., 4126472., 3335885., 3352370., 3368855., 3385340.,
      2625532., 2638776., 2652020., 2665264., 2158456., 2169808., 2181160.,
      2192512., 2652530., 2666780., 2681030., 2695280., 3128004., 3145176.,
      3162348., 3179520., 3584686., 3604804., 3624922., 3645040., 3612742.,
      3633028., 3653314., 3673600., 3037572., 3055032., 3072492., 3089952.,
      2481770., 2496380., 2510990., 2525600., 1945528., 1957264., 1969000.,
      1980736., 1549300., 1559080., 1568860., 1578640., 1895675., 1907950.,
      1920225., 1932500., 2225350., 2240140., 2254930., 2269720., 2538165.,
      2555490., 2572815., 2590140., 2557625., 2575090., 2592555., 2610020.,
      2139430., 2154460., 2169490., 2184520., 1738575., 1751150., 1763725.,
      1776300., 1355220., 1365320., 1375420., 1385520., 1030352., 1038432.,
      1046512., 1054592., 1252780., 1262920., 1273060., 1283200., 1460888.,
      1473104., 1485320., 1497536., 1654548., 1668856., 1683164., 1697472.,
      1666980., 1681400., 1695820., 1710240., 1383704., 1396112., 1408520.,
      1420928., 1115260., 1125640., 1136020., 1146400., 861776.,  870112.,
      878448.,  886784.,  2983760., 2993888., 3004016., 3014144., 3691020.,
      3703720., 3716420., 3729120., 4382552., 4397840., 4413128., 4428416.,
      5058228., 5076120., 5094012., 5111904., 5089476., 5107480., 5125484.,
      5143488., 4313048., 4328528., 4344008., 4359488., 3552860., 3565800.,
      3578740., 3591680., 2809040., 2819424., 2829808., 2840192., 3486260.,
      3499240., 3512220., 3525200., 4306475., 4322750., 4339025., 4355300.,
      5105830., 5125420., 5145010., 5164600., 5884165., 5907090., 5930015.,
      5952940., 5919305., 5942370., 5965435., 5988500., 5008390., 5028220.,
      5048050., 5067880., 4118975., 4135550., 4152125., 4168700., 3251220.,
      3264520., 3277820., 3291120., 3877048., 3893008., 3908968., 3924928.,
      4781090., 4801100., 4821110., 4841120., 5658660., 5682744., 5706828.,
      5730912., 6509566., 6537748., 6565930., 6594112., 6547030., 6575380.,
      6603730., 6632080., 5529060., 5553432., 5577804., 5602176., 4538330.,
      4558700., 4579070., 4599440., 3575032., 3591376., 3607720., 3624064.,
      4148956., 4168024., 4187092., 4206160., 5105905., 5129810., 5153715.,
      5177620., 6030290., 6059060., 6087830., 6116600., 6921887., 6955550.,
      6989213., 7022876., 6960107., 6993966., 7027825., 7061684., 5864306.,
      5893412., 5922518., 5951624., 4801965., 4826290., 4850615., 4874940.,
      3773308., 3792824., 3812340., 3831856., 4334428., 4354392., 4374356.,
      4394320., 5333265., 5358290., 5383315., 5408340., 6297746., 6327860.,
      6357974., 6388088., 7227647., 7262878., 7298109., 7333340., 7265867.,
      7301294., 7336721., 7372148., 6121010., 6151460., 6181910., 6212360.,
      5011405., 5036850., 5062295., 5087740., 3937276., 3957688., 3978100.,
      3998512., 4519900., 4540760., 4561620., 4582480., 5560625., 5586770.,
      5612915., 5639060., 6565202., 6596660., 6628118., 6659576., 7533407.,
      7570206., 7607005., 7643804., 7571627., 7608622., 7645617., 7682612.,
      6377714., 6409508., 6441302., 6473096., 5220845., 5247410., 5273975.,
      5300540., 4101244., 4122552., 4143860., 4165168., 3395704., 3413968.,
      3432232., 3450496., 4164530., 4187420., 4210310., 4233200., 4900932.,
      4928472., 4956012., 4983552., 5604718., 5636932., 5669146., 5701360.,
      5632774., 5665156., 5697538., 5729920., 4727556., 4755384., 4783212.,
      4811040., 3855530., 3878780., 3902030., 3925280., 3016888., 3035536.,
      3054184., 3072832., 2419060., 2434600., 2450140., 2465680., 2954075.,
      2973550., 2993025., 3012500., 3460870., 3484300., 3507730., 3531160.,
      3939285., 3966690., 3994095., 4021500., 3958745., 3986290., 4013835.,
      4041380., 3305830., 3329500., 3353170., 3376840., 2681775., 2701550.,
      2721325., 2741100., 2086740., 2102600., 2118460., 2134320., 1597136.,
      1609824., 1622512., 1635200., 1938220., 1954120., 1970020., 1985920.,
      2255768., 2274896., 2294024., 2313152., 2549652., 2572024., 2594396.,
      2616768., 2562084., 2584568., 2607052., 2629536., 2123288., 2142608.,
      2161928., 2181248., 1708540., 1724680., 1740820., 1756960., 1317968.,
      1330912., 1343856., 1356800.};
  const std::array<int, 4> in_shape = {{3, 9, 8, 2}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x9x8x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1418207., 1423646., 1429085., 1434524., 1456427., 1462062., 1467697.,
      1473332., 1723967., 1730974., 1737981., 1744988., 1762187., 1769390.,
      1776593., 1783796., 2029727., 2038302., 2046877., 2055452., 2067947.,
      2076718., 2085489., 2094260., 4170047., 4189598., 4209149., 4228700.,
      4208267., 4228014., 4247761., 4267508., 4475807., 4496926., 4518045.,
      4539164., 4514027., 4535342., 4556657., 4577972., 4781567., 4804254.,
      4826941., 4849628., 4819787., 4842670., 4865553., 4888436., 6921887.,
      6955550., 6989213., 7022876., 6960107., 6993966., 7027825., 7061684.,
      7227647., 7262878., 7298109., 7333340., 7265867., 7301294., 7336721.,
      7372148., 7533407., 7570206., 7607005., 7643804., 7571627., 7608622.,
      7645617., 7682612.};
  const std::array<int, 4> in_shape = {{3, 9, 8, 2}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x9x8x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      602784.,   768520.,   939760.,   1116248.,  1179192.,  1022896.,
      862120.,   697120.,   913560.,   1154750.,  1400420.,  1650250.,
      1721090.,  1483220.,  1242150.,  998200.,   1259696.,  1582780.,
      1908360.,  2236052.,  2311652.,  1982376.,  1652140.,  1321328.,
      1626856.,  2034690.,  2442076.,  2848566.,  2925790.,  2498860.,
      2074170.,  1652168.,  2001384.,  2493890.,  2982364.,  3466358.,
      3543582.,  3017644.,  2497530.,  1983688.,  2375912.,  2953090.,
      3522652.,  4084150.,  4161374.,  3536428.,  2920890.,  2315208.,
      1855856.,  2298220.,  2731176.,  3154340.,  3211124.,  2717640.,
      2235100.,  1763888.,  1372120.,  1691150.,  1999940.,  2298170.,
      2337650.,  1967540.,  1608950.,  1262200.,  939040.,   1149800.,
      1350448.,  1540728.,  1566040.,  1307632.,  1060360.,  824480.,
      3303072.,  4097800.,  4879600.,  5648216.,  5711160.,  4852144.,
      4007080.,  3176224.,  3966360.,  4913150.,  5841380.,  6750730.,
      6821570.,  5785940.,  4770150.,  3774520.,  4535984.,  5609020.,
      6656904.,  7679252.,  7754852.,  6565032.,  5401900.,  4265840.,
      4997608.,  6167490.,  7304668.,  8408694.,  8485918.,  7167916.,
      5884410.,  4635848.,  5372136.,  6626690.,  7844956.,  9026486.,
      9103710.,  7686700.,  6307770.,  4967368.,  5746664.,  7085890.,
      8385244.,  9644278.,  9721502.,  8205484.,  6731130.,  5298888.,
      4358000.,  5356780.,  6318504.,  7242788.,  7299572.,  6139080.,
      5017180.,  3934256.,  3134680.,  3836750.,  4505540.,  5140730.,
      5180210.,  4334900.,  3524150.,  2748280.,  2091040.,  2543720.,
      2967856.,  3363192.,  3388504.,  2814448.,  2269960.,  1755296.,
      6003360.,  7427080.,  8819440.,  10180184., 10243128., 8681392.,
      7152040.,  5655328.,  7019160.,  8671550.,  10282340., 11851210.,
      11922050., 10088660., 8298150.,  6550840.,  7812272.,  9635260.,
      11405448., 13122452., 13198052., 11147688., 9151660.,  7210352.,
      8368360.,  10300290., 12167260., 13968822., 14046046., 11836972.,
      9694650.,  7619528.,  8742888.,  10759490., 12707548., 14586614.,
      14663838., 12355756., 10118010., 7951048.,  9117416.,  11218690.,
      13247836., 15204406., 15281630., 12874540., 10541370., 8282568.,
      6860144.,  8415340.,  9905832.,  11331236., 11388020., 9560520.,
      7799260.,  6104624.,  4897240.,  5982350.,  7011140.,  7983290.,
      8022770.,  6702260.,  5439350.,  4234360.,  3243040.,  3937640.,
      4585264.,  5185656.,  5210968.,  4321264.,  3479560.,  2686112.};
  const std::array<int, 4> in_shape = {{3, 9, 8, 4}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x9x8x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2848566.,  2925790.,  3466358.,  3543582.,  4084150.,  4161374.,
      8408694.,  8485918.,  9026486.,  9103710.,  9644278.,  9721502.,
      13968822., 14046046., 14586614., 14663838., 15204406., 15281630.};
  const std::array<int, 4> in_shape = {{3, 9, 8, 4}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x9x8x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      346400.,  350016.,  462792.,  467472.,  581936.,  587744.,  703320.,
      710320.,  759128.,  766576.,  680368.,  686944.,  605000.,  610640.,
      533536.,  538176.,  605320.,  611120.,  806498.,  813948.,  1008364.,
      1017544., 1210278., 1221268., 1281766., 1293316., 1138700., 1148840.,
      1001602., 1010252., 871112.,  878192.,  934448.,  942944.,  1233164.,
      1244024., 1528584., 1541904., 1819940., 1835816., 1900836., 1917384.,
      1673928., 1688400., 1457484., 1469784., 1252272., 1262304., 1305112.,
      1316816., 1706950., 1721860., 2099588., 2117816., 2482130., 2503788.,
      2566162., 2588604., 2243044., 2262616., 1936806., 1953396., 1648344.,
      1661840., 1690136., 1705424., 2194886., 2214276., 2683268., 2706872.,
      3154386., 3182316., 3238418., 3267132., 2816484., 2841432., 2418598.,
      2439668., 2045656., 2062736., 1583640., 1598416., 2088902., 2107652.,
      2578820., 2601656., 3052498., 3079532., 3136530., 3164348., 2750948.,
      2775128., 2388390., 2408820., 2049752., 2066320., 1628080., 1641696.,
      2169708., 2186968., 2696520., 2717520., 3207748., 3232584., 3279684.,
      3305192., 2896136., 2918288., 2534572., 2553272., 2195760., 2210912.,
      1614600., 1626544., 1986306., 2001436., 2345644., 2364040., 2691974.,
      2713716., 2758086., 2780388., 2327500., 2346856., 1915938., 1932268.,
      1524040., 1537264., 1012256., 1022016., 1237640., 1250000., 1450928.,
      1465952., 1651608., 1669360., 1701784., 1719984., 1413680., 1429472.,
      1139720., 1153040., 880416.,  891200.,  583968.,  589632.,  774088.,
      781328.,  962864.,  971744.,  1149784., 1160368., 1205592., 1216624.,
      1069488., 1079136., 940872.,  949072.,  820256.,  826944.,  920712.,
      929072.,  1212514., 1223164., 1499884., 1512904., 1782182., 1797652.,
      1853670., 1869700., 1632268., 1646248., 1421954., 1433804., 1223368.,
      1233008., 1298992., 1310560., 1698060., 1712760., 2087688., 2105616.,
      2467108., 2488360., 2548004., 2569928., 2228936., 2248016., 1926476.,
      1942616., 1641392., 1654496., 1690136., 1705424., 2194886., 2214276.,
      2683268., 2706872., 3154386., 3182316., 3238418., 3267132., 2816484.,
      2841432., 2418598., 2439668., 2045656., 2062736., 1583640., 1598416.,
      2088902., 2107652., 2578820., 2601656., 3052498., 3079532., 3136530.,
      3164348., 2750948., 2775128., 2388390., 2408820., 2049752., 2066320.,
      1706520., 1720784., 2269638., 2287748., 2818436., 2840504., 3352018.,
      3378156., 3436050., 3462972., 3029476., 3052888., 2644902., 2664692.,
      2283224., 2299280., 1656752., 1669344., 2038636., 2054616., 2407752.,
      2427216., 2763332., 2786376., 2835268., 2858984., 2390280., 2410896.,
      1965228., 1982648., 1560880., 1575008., 1053448., 1063856., 1317122.,
      1330332., 1571500., 1587592., 1815942., 1834996., 1882054., 1901668.,
      1604556., 1621608., 1343010., 1357420., 1098056., 1109744., 643616.,
      651328.,  787080.,  796880.,  922544.,  934496.,  1049496., 1063664.,
      1099672., 1114288., 909872.,  922592.,  730120.,  740880.,  560928.,
      569664.,  821536.,  829248.,  1085384., 1095184., 1343792., 1355744.,
      1596248., 1610416., 1652056., 1666672., 1458608., 1471328., 1276744.,
      1287504., 1106976., 1115712., 1236104., 1247024., 1618530., 1632380.,
      1991404., 2008264., 2354086., 2374036., 2425574., 2446084., 2125836.,
      2143656., 1842306., 1857356., 1575624., 1587824., 1663536., 1678176.,
      2162956., 2181496., 2646792., 2669328., 3114276., 3140904., 3195172.,
      3222472., 2783944., 2807632., 2395468., 2415448., 2030512., 2046688.,
      1583640., 1598416., 2088902., 2107652., 2578820., 2601656., 3052498.,
      3079532., 3136530., 3164348., 2750948., 2775128., 2388390., 2408820.,
      2049752., 2066320., 1706520., 1720784., 2269638., 2287748., 2818436.,
      2840504., 3352018., 3378156., 3436050., 3462972., 3029476., 3052888.,
      2644902., 2664692., 2283224., 2299280., 1796632., 1810384., 2212806.,
      2230276., 2615684., 2636984., 3004370., 3029612., 3088402., 3114428.,
      2603492., 2626136., 2139558., 2158708., 1697496., 1713040., 1128368.,
      1139936., 1407852., 1422552., 1676616., 1694544., 1933892., 1955144.,
      2005828., 2027752., 1704200., 1723280., 1420460., 1436600., 1155376.,
      1168480., 721672.,  730544.,  934658.,  945948.,  1141420., 1155208.,
      1341318., 1357684., 1407430., 1424356., 1225676., 1240424., 1056802.,
      1069292., 901448.,  911600.,  504352.,  510016.,  623240.,  630480.,
      738224.,  747104.,  848792.,  859376.,  898968.,  910000.,  750128.,
      759776.,  607240.,  615440.,  470816.,  477504.};
  const std::array<int, 4> in_shape = {{3, 9, 8, 4}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 256.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x9x8x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2482130., 2503788., 2566162., 2588604., 3154386., 3182316.,
      3238418., 3267132., 3052498., 3079532., 3136530., 3164348.,
      3154386., 3182316., 3238418., 3267132., 3052498., 3079532.,
      3136530., 3164348., 3352018., 3378156., 3436050., 3462972.,
      3052498., 3079532., 3136530., 3164348., 3352018., 3378156.,
      3436050., 3462972., 3004370., 3029612., 3088402., 3114428.};
  const std::array<int, 4> in_shape = {{3, 9, 8, 4}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 256.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x9x8x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      505888.,  509504.,  513120.,  516736.,  675144.,  679824.,  684504.,
      689184.,  841648.,  847456.,  853264.,  859072.,  1004376., 1011376.,
      1018376., 1025376., 1066392., 1073840., 1081288., 1088736., 1029552.,
      1036128., 1042704., 1049280., 874120.,  879760.,  885400.,  891040.,
      730656.,  735296.,  739936.,  744576.,  790120.,  795920.,  801720.,
      807520.,  1043882., 1051332., 1058782., 1066232., 1289212., 1298392.,
      1307572., 1316752., 1526366., 1537356., 1548346., 1559336., 1599150.,
      1610700., 1622250., 1633800., 1514620., 1524760., 1534900., 1545040.,
      1287994., 1296644., 1305294., 1313944., 1082856., 1089936., 1097016.,
      1104096., 1118000., 1126496., 1134992., 1143488., 1467820., 1478680.,
      1489540., 1500400., 1833992., 1847312., 1860632., 1873952., 2183748.,
      2199624., 2215500., 2231376., 2275236., 2291784., 2308332., 2324880.,
      2121992., 2136464., 2150936., 2165408., 1802892., 1815192., 1827492.,
      1839792., 1514544., 1524576., 1534608., 1544640., 1528440., 1540144.,
      1551848., 1563552., 1985358., 2000268., 2015178., 2030088., 2479572.,
      2497800., 2516028., 2534256., 2945290., 2966948., 2988606., 3010264.,
      3042938., 3065380., 3087822., 3110264., 2796372., 2815944., 2835516.,
      2855088., 2364030., 2380620., 2397210., 2413800., 1975544., 1989040.,
      2002536., 2016032., 1967224., 1982512., 1997800., 2013088., 2530766.,
      2550156., 2569546., 2588936., 3150036., 3173640., 3197244., 3220848.,
      3726474., 3754404., 3782334., 3810264., 3824122., 3852836., 3881550.,
      3910264., 3479124., 3504072., 3529020., 3553968., 2929918., 2950988.,
      2972058., 2993128., 2438904., 2455984., 2473064., 2490144., 1689208.,
      1703984., 1718760., 1733536., 2155598., 2174348., 2193098., 2211848.,
      2712532., 2735368., 2758204., 2781040., 3228682., 3255716., 3282750.,
      3309784., 3326330., 3354148., 3381966., 3409784., 2890068., 2914248.,
      2938428., 2962608., 2476926., 2497356., 2517786., 2538216., 2119928.,
      2136496., 2153064., 2169632., 1499184., 1512800., 1526416., 1540032.,
      1944428., 1961688., 1978948., 1996208., 2514056., 2535056., 2556056.,
      2577056., 3044228., 3069064., 3093900., 3118736., 3121892., 3147400.,
      3172908., 3198416., 2723720., 2745872., 2768024., 2790176., 2377804.,
      2396504., 2415204., 2433904., 2085680., 2100832., 2115984., 2131136.,
      1441128., 1453072., 1465016., 1476960., 1710826., 1725956., 1741086.,
      1756216., 2142588., 2160984., 2179380., 2197776., 2540062., 2561804.,
      2583546., 2605288., 2606190., 2628492., 2650794., 2673096., 2179068.,
      2198424., 2217780., 2237136., 1798266., 1814596., 1830926., 1847256.,
      1465064., 1478288., 1491512., 1504736., 1027616., 1037376., 1047136.,
      1056896., 1208520., 1220880., 1233240., 1245600., 1588912., 1603936.,
      1618960., 1633984., 1939928., 1957680., 1975432., 1993184., 1990680.,
      2008880., 2027080., 2045280., 1667760., 1683552., 1699344., 1715136.,
      1381384., 1394704., 1408024., 1421344., 1132576., 1143360., 1154144.,
      1164928., 782368.,  788032.,  793696.,  799360.,  1033032., 1040272.,
      1047512., 1054752., 1272752., 1281632., 1290512., 1299392., 1500504.,
      1511088., 1521672., 1532256., 1562520., 1573552., 1584584., 1595616.,
      1477040., 1486688., 1496336., 1505984., 1248392., 1256592., 1264792.,
      1272992., 1039904., 1046592., 1053280., 1059968., 1090664., 1099024.,
      1107384., 1115744., 1426730., 1437380., 1448030., 1458680., 1776892.,
      1789912., 1802932., 1815952., 2108638., 2124108., 2139578., 2155048.,
      2181422., 2197452., 2213482., 2229512., 2039164., 2053144., 2067124.,
      2081104., 1732282., 1744132., 1755982., 1767832., 1457128., 1466768.,
      1476408., 1486048., 1516336., 1527904., 1539472., 1551040., 1967788.,
      1982488., 1997188., 2011888., 2456072., 2474000., 2491928., 2509856.,
      2915652., 2936904., 2958156., 2979408., 3007140., 3029064., 3050988.,
      3072912., 2768648., 2787728., 2806808., 2825888., 2343820., 2359960.,
      2376100., 2392240., 1962032., 1975136., 1988240., 2001344., 1967224.,
      1982512., 1997800., 2013088., 2530766., 2550156., 2569546., 2588936.,
      3150036., 3173640., 3197244., 3220848., 3726474., 3754404., 3782334.,
      3810264., 3824122., 3852836., 3881550., 3910264., 3479124., 3504072.,
      3529020., 3553968., 2929918., 2950988., 2972058., 2993128., 2438904.,
      2455984., 2473064., 2490144., 1689208., 1703984., 1718760., 1733536.,
      2155598., 2174348., 2193098., 2211848., 2712532., 2735368., 2758204.,
      2781040., 3228682., 3255716., 3282750., 3309784., 3326330., 3354148.,
      3381966., 3409784., 2890068., 2914248., 2938428., 2962608., 2476926.,
      2497356., 2517786., 2538216., 2119928., 2136496., 2153064., 2169632.,
      1607800., 1622064., 1636328., 1650592., 2091726., 2109836., 2127946.,
      2146056., 2701012., 2723080., 2745148., 2767216., 3271562., 3297700.,
      3323838., 3349976., 3369210., 3396132., 3423054., 3449976., 2989140.,
      3012552., 3035964., 3059376., 2597374., 2617164., 2636954., 2656744.,
      2259704., 2275760., 2291816., 2307872., 1524784., 1537376., 1549968.,
      1562560., 1814636., 1830616., 1846596., 1862576., 2265736., 2285200.,
      2304664., 2324128., 2681476., 2704520., 2727564., 2750608., 2759140.,
      2782856., 2806572., 2830288., 2303368., 2323984., 2344600., 2365216.,
      1895756., 1913176., 1930596., 1948016., 1537840., 1551968., 1566096.,
      1580224., 1074024., 1084432., 1094840., 1105248., 1291882., 1305092.,
      1318302., 1331512., 1710716., 1726808., 1742900., 1758992., 2101406.,
      2120460., 2139514., 2158568., 2167534., 2187148., 2206762., 2226376.,
      1849596., 1866648., 1883700., 1900752., 1571834., 1586244., 1600654.,
      1615064., 1335528., 1347216., 1358904., 1370592., 1078816., 1086528.,
      1094240., 1101952., 1293000., 1302800., 1312600., 1322400., 1485488.,
      1497440., 1509392., 1521344., 1656792., 1670960., 1685128., 1699296.,
      1707544., 1722160., 1736776., 1751392., 1384112., 1396832., 1409552.,
      1422272., 1089032., 1099792., 1110552., 1121312., 823328.,  832064.,
      840800.,  849536.,  1058848., 1066560., 1074272., 1081984., 1390920.,
      1400720., 1410520., 1420320., 1703856., 1715808., 1727760., 1739712.,
      1996632., 2010800., 2024968., 2039136., 2058648., 2073264., 2087880.,
      2102496., 1924528., 1937248., 1949968., 1962688., 1622664., 1633424.,
      1644184., 1654944., 1349152., 1357888., 1366624., 1375360., 1391208.,
      1402128., 1413048., 1423968., 1809578., 1823428., 1837278., 1851128.,
      2264572., 2281432., 2298292., 2315152., 2690910., 2710860., 2730810.,
      2750760., 2763694., 2784204., 2804714., 2825224., 2563708., 2581528.,
      2599348., 2617168., 2176570., 2191620., 2206670., 2221720., 1831400.,
      1843600., 1855800., 1868000., 1914672., 1929312., 1943952., 1958592.,
      2467756., 2486296., 2504836., 2523376., 3078152., 3100688., 3123224.,
      3145760., 3647556., 3674184., 3700812., 3727440., 3739044., 3766344.,
      3793644., 3820944., 3415304., 3438992., 3462680., 3486368., 2884748.,
      2904728., 2924708., 2944688., 2409520., 2425696., 2441872., 2458048.,
      1689208., 1703984., 1718760., 1733536., 2155598., 2174348., 2193098.,
      2211848., 2712532., 2735368., 2758204., 2781040., 3228682., 3255716.,
      3282750., 3309784., 3326330., 3354148., 3381966., 3409784., 2890068.,
      2914248., 2938428., 2962608., 2476926., 2497356., 2517786., 2538216.,
      2119928., 2136496., 2153064., 2169632., 1607800., 1622064., 1636328.,
      1650592., 2091726., 2109836., 2127946., 2146056., 2701012., 2723080.,
      2745148., 2767216., 3271562., 3297700., 3323838., 3349976., 3369210.,
      3396132., 3423054., 3449976., 2989140., 3012552., 3035964., 3059376.,
      2597374., 2617164., 2636954., 2656744., 2259704., 2275760., 2291816.,
      2307872., 1723000., 1736752., 1750504., 1764256., 2077006., 2094476.,
      2111946., 2129416., 2591188., 2612488., 2633788., 2655088., 3068682.,
      3093924., 3119166., 3144408., 3166330., 3192356., 3218382., 3244408.,
      2727764., 2750408., 2773052., 2795696., 2242686., 2261836., 2280986.,
      2300136., 1809656., 1825200., 1840744., 1856288., 1222704., 1234272.,
      1245840., 1257408., 1471852., 1486552., 1501252., 1515952., 1919112.,
      1937040., 1954968., 1972896., 2335108., 2356360., 2377612., 2398864.,
      2412772., 2434696., 2456620., 2478544., 2046856., 2065936., 2085016.,
      2104096., 1725004., 1741144., 1757284., 1773424., 1448752., 1461856.,
      1474960., 1488064., 1165672., 1174544., 1183416., 1192288., 1446378.,
      1457668., 1468958., 1480248., 1704828., 1718616., 1732404., 1746192.,
      1941278., 1957644., 1974010., 1990376., 2007406., 2024332., 2041258.,
      2058184., 1683964., 1698712., 1713460., 1728208., 1394554., 1407044.,
      1419534., 1432024., 1140456., 1150608., 1160760., 1170912., 540192.,
      545856.,  551520.,  557184.,  640200.,  647440.,  654680.,  661920.,
      759472.,  768352.,  777232.,  786112.,  865752.,  876336.,  886920.,
      897504.,  916504.,  927536.,  938568.,  949600.,  740016.,  749664.,
      759312.,  768960.,  583688.,  591888.,  600088.,  608288.,  448544.,
      455232.,  461920.,  468608.};
  const std::array<int, 4> in_shape = {{3, 9, 8, 4}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 256.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x9x8x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2945290., 2966948., 2988606., 3010264., 3042938., 3065380., 3087822.,
      3110264., 3726474., 3754404., 3782334., 3810264., 3824122., 3852836.,
      3881550., 3910264., 3228682., 3255716., 3282750., 3309784., 3326330.,
      3354148., 3381966., 3409784., 3726474., 3754404., 3782334., 3810264.,
      3824122., 3852836., 3881550., 3910264., 3228682., 3255716., 3282750.,
      3309784., 3326330., 3354148., 3381966., 3409784., 3271562., 3297700.,
      3323838., 3349976., 3369210., 3396132., 3423054., 3449976., 3228682.,
      3255716., 3282750., 3309784., 3326330., 3354148., 3381966., 3409784.,
      3271562., 3297700., 3323838., 3349976., 3369210., 3396132., 3423054.,
      3449976., 3068682., 3093924., 3119166., 3144408., 3166330., 3192356.,
      3218382., 3244408.};
  const std::array<int, 4> in_shape = {{3, 9, 8, 4}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 256.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x9x9x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      10752.,  13660.,  16648.,  19712.,  20706.,  21700.,  18760.,  15760.,
      12704.,  16280.,  20525.,  24830.,  29190.,  30310.,  31430.,  27020.,
      22575.,  18100.,  22440.,  28140.,  33864.,  39606.,  40803.,  42000.,
      35952.,  29910.,  23880.,  28980.,  36190.,  43372.,  50519.,  51744.,
      52969.,  45178.,  37450.,  29792.,  35658.,  44380.,  53011.,  61544.,
      62769.,  63994.,  54439.,  45010.,  35714.,  42336.,  52570.,  62650.,
      72569.,  73794.,  75019.,  63700.,  52570.,  41636.,  33144.,  41010.,
      48696.,  56196.,  57099.,  58002.,  49056.,  40320.,  31800.,  24580.,
      30275.,  35780.,  41090.,  41720.,  42350.,  35630.,  29125.,  22840.,
      16896.,  20680.,  24280.,  27692.,  28098.,  28504.,  23800.,  19300.,
      15008.,  58704.,  72790.,  86632.,  100226., 101220., 102214., 86800.,
      71650.,  56768.,  70550.,  87350.,  103805., 119910., 121030., 122150.,
      103565., 85350.,  67510.,  80760.,  99825.,  118428., 136563., 137760.,
      138957., 117600., 96735.,  76368.,  89082.,  109900., 130123., 149744.,
      150969., 152194., 128527., 105490., 83090.,  95760.,  118090., 139762.,
      160769., 161994., 163219., 137788., 113050., 89012.,  102438., 126280.,
      149401., 171794., 173019., 174244., 147049., 120610., 94934.,  77856.,
      95685.,  112848., 129339., 130242., 131145., 110292., 90135.,  70680.,
      56170.,  68750.,  80735.,  92120.,  92750.,  93380.,  78155.,  63550.,
      49570.,  37632.,  45790.,  53440.,  60578.,  60984.,  61390.,  51016.,
      41170.,  31856.,  106656., 131920., 156616., 180740., 181734., 182728.,
      154840., 127540., 100832., 124820., 154175., 182780., 210630., 211750.,
      212870., 180110., 148125., 116920., 139080., 171510., 202992., 233520.,
      234717., 235914., 199248., 163560., 128856., 149184., 183610., 216874.,
      248969., 250194., 251419., 211876., 173530., 136388., 155862., 191800.,
      226513., 259994., 261219., 262444., 221137., 181090., 142310., 162540.,
      199990., 236152., 271019., 272244., 273469., 230398., 188650., 148232.,
      122568., 150360., 177000., 202482., 203385., 204288., 171528., 139950.,
      109560., 87760.,  107225., 125690., 143150., 143780., 144410., 120680.,
      97975.,  76300.,  58368.,  70900.,  82600.,  93464.,  93870.,  94276.,
      78232.,  63040.,  48704.};
  const std::array<int, 4> in_shape = {{3, 9, 9, 1}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x9x9x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      50519.,  51744.,  52969.,  61544.,  62769.,  63994.,  72569.,
      73794.,  75019.,  149744., 150969., 152194., 160769., 161994.,
      163219., 171794., 173019., 174244., 248969., 250194., 251419.,
      259994., 261219., 262444., 271019., 272244., 273469.};
  const std::array<int, 4> in_shape = {{3, 9, 9, 1}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x9x9x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      21248.,  21504.,  26990.,  27320.,  32888.,  33296.,  38934.,  39424.,
      40894.,  41412.,  42854.,  43400.,  37040.,  37520.,  31110.,  31520.,
      25072.,  25408.,  32150.,  32560.,  40525.,  41050.,  49015.,  49660.,
      57610.,  58380.,  59815.,  60620.,  62020.,  62860.,  53305.,  54040.,
      44525.,  45150.,  35690.,  36200.,  44280.,  44880.,  55515.,  56280.,
      66792.,  67728.,  78099.,  79212.,  80451.,  81606.,  82803.,  84000.,
      70860.,  71904.,  58935.,  59820.,  47040.,  47760.,  57134.,  57960.,
      71330.,  72380.,  85463.,  86744.,  99519.,  101038., 101920., 103488.,
      104321., 105938., 88949.,  90356.,  73710.,  74900.,  58618.,  59584.,
      70238.,  71316.,  87395.,  88760.,  104363., 106022., 121128., 123088.,
      123529., 125538., 125930., 127988., 107093., 108878., 88515.,  90020.,
      70210.,  71428.,  83342.,  84672.,  103460., 105140., 123263., 125300.,
      142737., 145138., 145138., 147588., 147539., 150038., 125237., 127400.,
      103320., 105140., 81802.,  83272.,  65040.,  66288.,  80445.,  82020.,
      95484.,  97392.,  110145., 112392., 111909., 114198., 113673., 116004.,
      96096.,  98112.,  78945.,  80640.,  62232.,  63600.,  48030.,  49160.,
      59125.,  60550.,  69835.,  71560.,  80150.,  82180.,  81375.,  83440.,
      82600.,  84700.,  69445.,  71260.,  56725.,  58250.,  44450.,  45680.,
      32816.,  33792.,  40130.,  41360.,  47072.,  48560.,  53634.,  55384.,
      54418.,  56196.,  55202.,  57008.,  46040.,  47600.,  37290.,  38600.,
      28960.,  30016.,  115856., 117408., 143630., 145580., 170912., 173264.,
      197694., 200452., 199654., 202440., 201614., 204428., 171176., 173600.,
      141270., 143300., 111904., 113536., 139070., 141100., 172150., 174700.,
      204535., 207610., 236215., 239820., 238420., 242060., 240625., 244300.,
      203965., 207130., 168050., 170700., 132890., 135020., 158976., 161520.,
      196455., 199650., 233004., 236856., 268611., 273126., 270963., 275520.,
      273315., 277914., 231240., 235200., 190155., 193470., 150072., 152736.,
      175070., 178164., 215915., 219800., 255563., 260246., 294000., 299488.,
      296401., 301938., 298802., 304388., 252245., 257054., 206955., 210980.,
      162946., 166180., 188174., 191520., 231980., 236180., 274463., 279524.,
      315609., 321538., 318010., 323988., 320411., 326438., 270389., 275576.,
      221760., 226100., 174538., 178024., 201278., 204876., 248045., 252560.,
      293363., 298802., 337218., 343588., 339619., 346038., 342020., 348488.,
      288533., 294098., 236565., 241220., 186130., 189868., 152520., 155712.,
      187365., 191370., 220872., 225696., 253029., 258678., 254793., 260484.,
      256557., 262290., 215652., 220584., 176145., 180270., 138048., 141360.,
      109590., 112340., 134050., 137500., 157315., 161470., 179375., 184240.,
      180600., 185500., 181825., 186760., 152065., 156310., 123550., 127100.,
      96290.,  99140.,  72992.,  75264.,  88730.,  91580.,  103448., 106880.,
      117138., 121156., 117922., 121968., 118706., 122780., 98528.,  102032.,
      79410.,  82340.,  61360.,  63712.,  210464., 213312., 260270., 263840.,
      308936., 313232., 356454., 361480., 358414., 363468., 360374., 365456.,
      305312., 309680., 251430., 255080., 198736., 201664., 245990., 249640.,
      303775., 308350., 360055., 365560., 414820., 421260., 417025., 423500.,
      419230., 425740., 354625., 360220., 291575., 296250., 230090., 233840.,
      273672., 278160., 337395., 343020., 399216., 405984., 459123., 467040.,
      461475., 469434., 463827., 471828., 391620., 398496., 321375., 327120.,
      253104., 257712., 293006., 298368., 360500., 367220., 425663., 433748.,
      488481., 497938., 490882., 500388., 493283., 502838., 415541., 423752.,
      340200., 347060., 267274., 272776., 306110., 311724., 376565., 383600.,
      444563., 453026., 510090., 519988., 512491., 522438., 514892., 524888.,
      433685., 442274., 355005., 362180., 278866., 284620., 319214., 325080.,
      392630., 399980., 463463., 472304., 531699., 542038., 534100., 544488.,
      536501., 546938., 451829., 460796., 369810., 377300., 290458., 296464.,
      240000., 245136., 294285., 300720., 346260., 354000., 395913., 404964.,
      397677., 406770., 399441., 408576., 335208., 343056., 273345., 279900.,
      213864., 219120., 171150., 175520., 208975., 214450., 244795., 251380.,
      278600., 286300., 279825., 287560., 281050., 288820., 234685., 241360.,
      190375., 195950., 148130., 152600., 113168., 116736., 137330., 141800.,
      159824., 165200., 180642., 186928., 181426., 187740., 182210., 188552.,
      151016., 156464., 121530., 126080., 93760.,  97408.};
  const std::array<int, 4> in_shape = {{3, 9, 9, 1}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x9x9x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      99519.,  101038., 101920., 103488., 104321., 105938., 121128., 123088.,
      123529., 125538., 125930., 127988., 142737., 145138., 145138., 147588.,
      147539., 150038., 294000., 299488., 296401., 301938., 298802., 304388.,
      315609., 321538., 318010., 323988., 320411., 326438., 337218., 343588.,
      339619., 346038., 342020., 348488., 488481., 497938., 490882., 500388.,
      493283., 502838., 510090., 519988., 512491., 522438., 514892., 524888.,
      531699., 542038., 534100., 544488., 536501., 546938.};
  const std::array<int, 4> in_shape = {{3, 9, 9, 1}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x9x9x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      42240.,   42496.,   42752.,   43008.,   53650.,   53980.,   54310.,
      54640.,   65368.,   65776.,   66184.,   66592.,   77378.,   77868.,
      78358.,   78848.,   81270.,   81788.,   82306.,   82824.,   85162.,
      85708.,   86254.,   86800.,   73600.,   74080.,   74560.,   75040.,
      61810.,   62220.,   62630.,   63040.,   49808.,   50144.,   50480.,
      50816.,   63890.,   64300.,   64710.,   65120.,   80525.,   81050.,
      81575.,   82100.,   97385.,   98030.,   98675.,   99320.,   114450.,
      115220.,  115990.,  116760.,  118825.,  119630.,  120435.,  121240.,
      123200.,  124040.,  124880.,  125720.,  105875.,  106610.,  107345.,
      108080.,  88425.,   89050.,   89675.,   90300.,   70870.,   71380.,
      71890.,   72400.,   87960.,   88560.,   89160.,   89760.,   110265.,
      111030.,  111795.,  112560.,  132648.,  133584.,  134520.,  135456.,
      155085.,  156198.,  157311.,  158424.,  159747.,  160902.,  162057.,
      163212.,  164409.,  165606.,  166803.,  168000.,  140676.,  141720.,
      142764.,  143808.,  116985.,  117870.,  118755.,  119640.,  93360.,
      94080.,   94800.,   95520.,   113442.,  114268.,  115094.,  115920.,
      141610.,  142660.,  143710.,  144760.,  169645.,  170926.,  172207.,
      173488.,  197519.,  199038.,  200557.,  202076.,  202272.,  203840.,
      205408.,  206976.,  207025.,  208642.,  210259.,  211876.,  176491.,
      177898.,  179305.,  180712.,  146230.,  147420.,  148610.,  149800.,
      116270.,  117236.,  118202.,  119168.,  139398.,  140476.,  141554.,
      142632.,  173425.,  174790.,  176155.,  177520.,  207067.,  208726.,
      210385.,  212044.,  240296.,  242256.,  244216.,  246176.,  245049.,
      247058.,  249067.,  251076.,  249802.,  251860.,  253918.,  255976.,
      212401.,  214186.,  215971.,  217756.,  175525.,  177030.,  178535.,
      180040.,  139202.,  140420.,  141638.,  142856.,  165354.,  166684.,
      168014.,  169344.,  205240.,  206920.,  208600.,  210280.,  244489.,
      246526.,  248563.,  250600.,  283073.,  285474.,  287875.,  290276.,
      287826.,  290276.,  292726.,  295176.,  292579.,  295078.,  297577.,
      300076.,  248311.,  250474.,  252637.,  254800.,  204820.,  206640.,
      208460.,  210280.,  162134.,  163604.,  165074.,  166544.,  128832.,
      130080.,  131328.,  132576.,  159315.,  160890.,  162465.,  164040.,
      189060.,  190968.,  192876.,  194784.,  218043.,  220290.,  222537.,
      224784.,  221529.,  223818.,  226107.,  228396.,  225015.,  227346.,
      229677.,  232008.,  190176.,  192192.,  194208.,  196224.,  156195.,
      157890.,  159585.,  161280.,  123096.,  124464.,  125832.,  127200.,
      94930.,   96060.,   97190.,   98320.,   116825.,  118250.,  119675.,
      121100.,  137945.,  139670.,  141395.,  143120.,  158270.,  160300.,
      162330.,  164360.,  160685.,  162750.,  164815.,  166880.,  163100.,
      165200.,  167300.,  169400.,  137075.,  138890.,  140705.,  142520.,
      111925.,  113450.,  114975.,  116500.,  87670.,   88900.,   90130.,
      91360.,   64656.,   65632.,   66608.,   67584.,   79030.,   80260.,
      81490.,   82720.,   92656.,   94144.,   95632.,   97120.,   105518.,
      107268.,  109018.,  110768.,  107058.,  108836.,  110614.,  112392.,
      108598.,  110404.,  112210.,  114016.,  90520.,   92080.,   93640.,
      95200.,   73270.,   74580.,   75890.,   77200.,   56864.,   57920.,
      58976.,   60032.,   230160.,  231712.,  233264.,  234816.,  285310.,
      287260.,  289210.,  291160.,  339472.,  341824.,  344176.,  346528.,
      392630.,  395388.,  398146.,  400904.,  396522.,  399308.,  402094.,
      404880.,  400414.,  403228.,  406042.,  408856.,  339928.,  342352.,
      344776.,  347200.,  280510.,  282540.,  284570.,  286600.,  222176.,
      223808.,  225440.,  227072.,  276110.,  278140.,  280170.,  282200.,
      341750.,  344300.,  346850.,  349400.,  405995.,  409070.,  412145.,
      415220.,  468825.,  472430.,  476035.,  479640.,  473200.,  476840.,
      480480.,  484120.,  477575.,  481250.,  484925.,  488600.,  404765.,
      407930.,  411095.,  414260.,  333450.,  336100.,  338750.,  341400.,
      263650.,  265780.,  267910.,  270040.,  315408.,  317952.,  320496.,
      323040.,  389715.,  392910.,  396105.,  399300.,  462156.,  466008.,
      469860.,  473712.,  532707.,  537222.,  541737.,  546252.,  537369.,
      541926.,  546483.,  551040.,  542031.,  546630.,  551229.,  555828.,
      458520.,  462480.,  466440.,  470400.,  376995.,  380310.,  383625.,
      386940.,  297480.,  300144.,  302808.,  305472.,  347046.,  350140.,
      353234.,  356328.,  427945.,  431830.,  435715.,  439600.,  506443.,
      511126.,  515809.,  520492.,  582512.,  588000.,  593488.,  598976.,
      587265.,  592802.,  598339.,  603876.,  592018.,  597604.,  603190.,
      608776.,  499681.,  504490.,  509299.,  514108.,  409885.,  413910.,
      417935.,  421960.,  322658.,  325892.,  329126.,  332360.,  373002.,
      376348.,  379694.,  383040.,  459760.,  463960.,  468160.,  472360.,
      543865.,  548926.,  553987.,  559048.,  625289.,  631218.,  637147.,
      643076.,  630042.,  636020.,  641998.,  647976.,  634795.,  640822.,
      646849.,  652876.,  535591.,  540778.,  545965.,  551152.,  439180.,
      443520.,  447860.,  452200.,  345590.,  349076.,  352562.,  356048.,
      398958.,  402556.,  406154.,  409752.,  491575.,  496090.,  500605.,
      505120.,  581287.,  586726.,  592165.,  597604.,  668066.,  674436.,
      680806.,  687176.,  672819.,  679238.,  685657.,  692076.,  677572.,
      684040.,  690508.,  696976.,  571501.,  577066.,  582631.,  588196.,
      468475.,  473130.,  477785.,  482440.,  368522.,  372260.,  375998.,
      379736.,  301848.,  305040.,  308232.,  311424.,  370725.,  374730.,
      378735.,  382740.,  436920.,  441744.,  446568.,  451392.,  500409.,
      506058.,  511707.,  517356.,  503895.,  509586.,  515277.,  520968.,
      507381.,  513114.,  518847.,  524580.,  426372.,  431304.,  436236.,
      441168.,  348165.,  352290.,  356415.,  360540.,  272784.,  276096.,
      279408.,  282720.,  216430.,  219180.,  221930.,  224680.,  264650.,
      268100.,  271550.,  275000.,  310475.,  314630.,  318785.,  322940.,
      353885.,  358750.,  363615.,  368480.,  356300.,  361200.,  366100.,
      371000.,  358715.,  363650.,  368585.,  373520.,  299885.,  304130.,
      308375.,  312620.,  243550.,  247100.,  250650.,  254200.,  189730.,
      192580.,  195430.,  198280.,  143712.,  145984.,  148256.,  150528.,
      174610.,  177460.,  180310.,  183160.,  203464.,  206896.,  210328.,
      213760.,  230258.,  234276.,  238294.,  242312.,  231798.,  235844.,
      239890.,  243936.,  233338.,  237412.,  241486.,  245560.,  193552.,
      197056.,  200560.,  204064.,  155890.,  158820.,  161750.,  164680.,
      120368.,  122720.,  125072.,  127424.,  418080.,  420928.,  423776.,
      426624.,  516970.,  520540.,  524110.,  527680.,  613576.,  617872.,
      622168.,  626464.,  707882.,  712908.,  717934.,  722960.,  711774.,
      716828.,  721882.,  726936.,  715666.,  720748.,  725830.,  730912.,
      606256.,  610624.,  614992.,  619360.,  499210.,  502860.,  506510.,
      510160.,  394544.,  397472.,  400400.,  403328.,  488330.,  491980.,
      495630.,  499280.,  602975.,  607550.,  612125.,  616700.,  714605.,
      720110.,  725615.,  731120.,  823200.,  829640.,  836080.,  842520.,
      827575.,  834050.,  840525.,  847000.,  831950.,  838460.,  844970.,
      851480.,  703655.,  709250.,  714845.,  720440.,  578475.,  583150.,
      587825.,  592500.,  456430.,  460180.,  463930.,  467680.,  542856.,
      547344.,  551832.,  556320.,  669165.,  674790.,  680415.,  686040.,
      791664.,  798432.,  805200.,  811968.,  910329.,  918246.,  926163.,
      934080.,  914991.,  922950.,  930909.,  938868.,  919653.,  927654.,
      935655.,  943656.,  776364.,  783240.,  790116.,  796992.,  637005.,
      642750.,  648495.,  654240.,  501600.,  506208.,  510816.,  515424.,
      580650.,  586012.,  591374.,  596736.,  714280.,  721000.,  727720.,
      734440.,  843241.,  851326.,  859411.,  867496.,  967505.,  976962.,
      986419.,  995876.,  972258.,  981764.,  991270.,  1000776., 977011.,
      986566.,  996121.,  1005676., 822871.,  831082.,  839293.,  847504.,
      673540.,  680400.,  687260.,  694120.,  529046.,  534548.,  540050.,
      545552.,  606606.,  612220.,  617834.,  623448.,  746095.,  753130.,
      760165.,  767200.,  880663.,  889126.,  897589.,  906052.,  1010282.,
      1020180., 1030078., 1039976., 1015035., 1024982., 1034929., 1044876.,
      1019788., 1029784., 1039780., 1049776., 858781.,  867370.,  875959.,
      884548.,  702835.,  710010.,  717185.,  724360.,  551978.,  557732.,
      563486.,  569240.,  632562.,  638428.,  644294.,  650160.,  777910.,
      785260.,  792610.,  799960.,  918085.,  926926.,  935767.,  944608.,
      1053059., 1063398., 1073737., 1084076., 1057812., 1068200., 1078588.,
      1088976., 1062565., 1073002., 1083439., 1093876., 894691.,  903658.,
      912625.,  921592.,  732130.,  739620.,  747110.,  754600.,  574910.,
      580916.,  586922.,  592928.,  474864.,  480000.,  485136.,  490272.,
      582135.,  588570.,  595005.,  601440.,  684780.,  692520.,  700260.,
      708000.,  782775.,  791826.,  800877.,  809928.,  786261.,  795354.,
      804447.,  813540.,  789747.,  798882.,  808017.,  817152.,  662568.,
      670416.,  678264.,  686112.,  540135.,  546690.,  553245.,  559800.,
      422472.,  427728.,  432984.,  438240.,  337930.,  342300.,  346670.,
      351040.,  412475.,  417950.,  423425.,  428900.,  483005.,  489590.,
      496175.,  502760.,  549500.,  557200.,  564900.,  572600.,  551915.,
      559650.,  567385.,  575120.,  554330.,  562100.,  569870.,  577640.,
      462695.,  469370.,  476045.,  482720.,  375175.,  380750.,  386325.,
      391900.,  291790.,  296260.,  300730.,  305200.,  222768.,  226336.,
      229904.,  233472.,  270190.,  274660.,  279130.,  283600.,  314272.,
      319648.,  325024.,  330400.,  354998.,  361284.,  367570.,  373856.,
      356538.,  362852.,  369166.,  375480.,  358078.,  364420.,  370762.,
      377104.,  296584.,  302032.,  307480.,  312928.,  238510.,  243060.,
      247610.,  252160.,  183872.,  187520.,  191168.,  194816.};
  const std::array<int, 4> in_shape = {{3, 9, 9, 1}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x9x9x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      197519.,  199038.,  200557.,  202076.,  202272.,  203840.,  205408.,
      206976.,  207025.,  208642.,  210259.,  211876.,  240296.,  242256.,
      244216.,  246176.,  245049.,  247058.,  249067.,  251076.,  249802.,
      251860.,  253918.,  255976.,  283073.,  285474.,  287875.,  290276.,
      287826.,  290276.,  292726.,  295176.,  292579.,  295078.,  297577.,
      300076.,  582512.,  588000.,  593488.,  598976.,  587265.,  592802.,
      598339.,  603876.,  592018.,  597604.,  603190.,  608776.,  625289.,
      631218.,  637147.,  643076.,  630042.,  636020.,  641998.,  647976.,
      634795.,  640822.,  646849.,  652876.,  668066.,  674436.,  680806.,
      687176.,  672819.,  679238.,  685657.,  692076.,  677572.,  684040.,
      690508.,  696976.,  967505.,  976962.,  986419.,  995876.,  972258.,
      981764.,  991270.,  1000776., 977011.,  986566.,  996121.,  1005676.,
      1010282., 1020180., 1030078., 1039976., 1015035., 1024982., 1034929.,
      1044876., 1019788., 1029784., 1039780., 1049776., 1053059., 1063398.,
      1073737., 1084076., 1057812., 1068200., 1078588., 1088976., 1062565.,
      1073002., 1083439., 1093876.};
  const std::array<int, 4> in_shape = {{3, 9, 9, 1}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x9x9x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      84336.,   107180.,  130664.,  154756.,  162652.,  170548.,  147464.,
      123900.,  99888.,   128100.,  161525.,  195430.,  229775.,  238665.,
      247555.,  212830.,  177825.,  142580.,  176904.,  221850.,  266988.,
      312270.,  321762.,  331254.,  283548.,  235890.,  188328.,  228732.,
      285635.,  342314.,  398713.,  408415.,  418117.,  356594.,  295575.,
      235116.,  281652.,  350525.,  418670.,  486031.,  495733.,  505435.,
      429926.,  355425.,  281988.,  334572.,  415415.,  495026.,  573349.,
      583051.,  592753.,  503258.,  415275.,  328860.,  261576.,  323610.,
      384204.,  443310.,  450450.,  457590.,  386940.,  317970.,  250728.,
      193620.,  238425.,  281710.,  323435.,  328405.,  333375.,  280390.,
      229125.,  179620.,  132720.,  162380.,  190568.,  217252.,  220444.,
      223636.,  186632.,  151260.,  117552.,  465360.,  576980.,  686648.,
      794332.,  802228.,  810124.,  687896.,  567780.,  449808.,  559020.,
      692075.,  822370.,  949865.,  958755.,  967645.,  820330.,  675975.,
      534620.,  639576.,  790470.,  937668.,  1081122., 1090614., 1100106.,
      930900.,  765630.,  604344.,  705012.,  869645.,  1029518., 1184575.,
      1194277., 1203979., 1016582., 834225.,  656964.,  757932.,  934535.,
      1105874., 1271893., 1281595., 1291297., 1089914., 894075.,  703836.,
      810852.,  999425.,  1182230., 1359211., 1368913., 1378615., 1163246.,
      953925.,  750708.,  615384.,  756150.,  891588.,  1021650., 1028790.,
      1035930., 870996.,  711630.,  557880.,  443100.,  542175.,  636490.,
      726005.,  730975.,  735945.,  615730.,  500475.,  390220.,  296016.,
      360020.,  419960.,  475804.,  478996.,  482188.,  400472.,  322980.,
      249744.,  846384.,  1046780., 1242632., 1433908., 1441804., 1449700.,
      1228328., 1011660., 799728.,  989940.,  1222625., 1449310., 1669955.,
      1678845., 1687735., 1427830., 1174125., 926660.,  1102248., 1359090.,
      1608348., 1849974., 1859466., 1868958., 1578252., 1295370., 1020360.,
      1181292., 1453655., 1716722., 1970437., 1980139., 1989841., 1676570.,
      1372875., 1078812., 1234212., 1518545., 1793078., 2057755., 2067457.,
      2077159., 1749902., 1432725., 1125684., 1287132., 1583435., 1869434.,
      2145073., 2154775., 2164477., 1823234., 1492575., 1172556., 969192.,
      1188690., 1398972., 1599990., 1607130., 1614270., 1355052., 1105290.,
      865032.,  692580.,  845925.,  991270.,  1128575., 1133545., 1138515.,
      951070.,  771825.,  600820.,  459312.,  557660.,  649352.,  734356.,
      737548.,  740740.,  614312.,  494700.,  381936.};
  const std::array<int, 4> in_shape = {{3, 9, 9, 2}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x9x9x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      398713.,  408415.,  418117.,  486031.,  495733.,  505435.,  573349.,
      583051.,  592753.,  1184575., 1194277., 1203979., 1271893., 1281595.,
      1291297., 1359211., 1368913., 1378615., 1970437., 1980139., 1989841.,
      2057755., 2067457., 2077159., 2145073., 2154775., 2164477.};
  const std::array<int, 4> in_shape = {{3, 9, 9, 2}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x9x9x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      167664.,  168672.,  213060.,  214360.,  259720.,  261328.,  307580.,
      309512.,  323260.,  325304.,  338940.,  341096.,  293032.,  294928.,
      246180.,  247800.,  198448.,  199776.,  254580.,  256200.,  320975.,
      323050.,  388310.,  390860.,  456505.,  459550.,  474145.,  477330.,
      491785.,  495110.,  422750.,  425660.,  353175.,  355650.,  283140.,
      285160.,  351432.,  353808.,  440670.,  443700.,  530268.,  533976.,
      620130.,  624540.,  638946.,  643524.,  657762.,  662508.,  562956.,
      567096.,  468270.,  471780.,  373800.,  376656.,  454188.,  457464.,
      567105.,  571270.,  679546.,  684628.,  791399.,  797426.,  810607.,
      816830.,  829815.,  836234.,  707602.,  713188.,  586425.,  591150.,
      466396.,  470232.,  559020.,  563304.,  695625.,  701050.,  830746.,
      837340.,  964271.,  972062.,  983479.,  991466.,  1002687., 1010870.,
      852754.,  859852.,  704865.,  710850.,  559132.,  563976.,  663852.,
      669144.,  824145.,  830830.,  981946.,  990052.,  1137143., 1146698.,
      1156351., 1166102., 1175559., 1185506., 997906.,  1006516., 823305.,
      830550.,  651868.,  657720.,  518184.,  523152.,  640950.,  647220.,
      760812.,  768408.,  877674.,  886620.,  891786.,  900900.,  905898.,
      915180.,  765852.,  773880.,  629190.,  635940.,  496008.,  501456.,
      382740.,  387240.,  471175.,  476850.,  556550.,  563420.,  638785.,
      646870.,  648585.,  656810.,  658385.,  666750.,  553550.,  560780.,
      452175.,  458250.,  354340.,  359240.,  261552.,  265440.,  319860.,
      324760.,  375208.,  381136.,  427532.,  434504.,  433804.,  440888.,
      440076.,  447272.,  367048.,  373264.,  297300.,  302520.,  230896.,
      235104.,  924528.,  930720.,  1146180., 1153960., 1363912., 1373296.,
      1577660., 1588664., 1593340., 1604456., 1609020., 1620248., 1366120.,
      1375792., 1127460., 1135560., 893104.,  899616.,  1109940., 1118040.,
      1373975., 1384150., 1632470., 1644740., 1885345., 1899730., 1902985.,
      1917510., 1920625., 1935290., 1628030., 1640660., 1341375., 1351950.,
      1060740., 1069240., 1269000., 1279152., 1568190., 1580940., 1859964.,
      1875336., 2144226., 2162244., 2163042., 2181228., 2181858., 2200212.,
      1845996., 1861800., 1518030., 1531260., 1198056., 1208688., 1397676.,
      1410024., 1723785., 1739290., 2040346., 2059036., 2347247., 2369150.,
      2366455., 2388554., 2385663., 2407958., 2013970., 2033164., 1652385.,
      1668450., 1301020., 1313928., 1502508., 1515864., 1852305., 1869070.,
      2191546., 2211748., 2520119., 2543786., 2539327., 2563190., 2558535.,
      2582594., 2159122., 2179828., 1770825., 1788150., 1393756., 1407672.,
      1607340., 1621704., 1980825., 1998850., 2342746., 2364460., 2692991.,
      2718422., 2712199., 2737826., 2731407., 2757230., 2304274., 2326492.,
      1889265., 1907850., 1486492., 1501416., 1218024., 1230768., 1496310.,
      1512300., 1763916., 1783176., 2020746., 2043300., 2034858., 2057580.,
      2048970., 2071860., 1722300., 1741992., 1406790., 1423260., 1102536.,
      1115760., 875220.,  886200.,  1070575., 1084350., 1256390., 1272980.,
      1432585., 1452010., 1442385., 1461950., 1452185., 1471890., 1214510.,
      1231460., 986775.,  1000950., 769060.,  780440.,  582960.,  592032.,
      708660.,  720040.,  826216.,  839920.,  935564.,  951608.,  941836.,
      957992.,  948108.,  964376.,  786952.,  800944.,  634260.,  645960.,
      490096.,  499488.,  1681392., 1692768., 2079300., 2093560., 2468104.,
      2485264., 2847740., 2867816., 2863420., 2883608., 2879100., 2899400.,
      2439208., 2456656., 2008740., 2023320., 1587760., 1599456., 1965300.,
      1979880., 2426975., 2445250., 2876630., 2898620., 3314185., 3339910.,
      3331825., 3357690., 3349465., 3375470., 2833310., 2855660., 2329575.,
      2348250., 1838340., 1853320., 2186568., 2204496., 2695710., 2718180.,
      3189660., 3216696., 3668322., 3699948., 3687138., 3718932., 3705954.,
      3737916., 3129036., 3156504., 2567790., 2590740., 2022312., 2040720.,
      2341164., 2362584., 2880465., 2907310., 3401146., 3433444., 3903095.,
      3940874., 3922303., 3960278., 3941511., 3979682., 3320338., 3353140.,
      2718345., 2745750., 2135644., 2157624., 2445996., 2468424., 3008985.,
      3037090., 3552346., 3586156., 4075967., 4115510., 4095175., 4134914.,
      4114383., 4154318., 3465490., 3499804., 2836785., 2865450., 2228380.,
      2251368., 2550828., 2574264., 3137505., 3166870., 3703546., 3738868.,
      4248839., 4290146., 4268047., 4309550., 4287255., 4328954., 3610642.,
      3646468., 2955225., 2985150., 2321116., 2345112., 1917864., 1938384.,
      2351670., 2377380., 2767020., 2797944., 3163818., 3199980., 3177930.,
      3214260., 3192042., 3228540., 2678748., 2710104., 2184390., 2210580.,
      1709064., 1730064., 1367700., 1385160., 1669975., 1691850., 1956230.,
      1982540., 2226385., 2257150., 2236185., 2267090., 2245985., 2277030.,
      1875470., 1902140., 1521375., 1543650., 1183780., 1201640., 904368.,
      918624.,  1097460., 1115320., 1277224., 1298704., 1443596., 1468712.,
      1449868., 1475096., 1456140., 1481480., 1206856., 1228624., 971220.,
      989400.,  749296.,  763872.};
  const std::array<int, 4> in_shape = {{3, 9, 9, 2}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x9x9x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      791399.,  797426.,  810607.,  816830.,  829815.,  836234.,  964271.,
      972062.,  983479.,  991466.,  1002687., 1010870., 1137143., 1146698.,
      1156351., 1166102., 1175559., 1185506., 2347247., 2369150., 2366455.,
      2388554., 2385663., 2407958., 2520119., 2543786., 2539327., 2563190.,
      2558535., 2582594., 2692991., 2718422., 2712199., 2737826., 2731407.,
      2757230., 3903095., 3940874., 3922303., 3960278., 3941511., 3979682.,
      4075967., 4115510., 4095175., 4134914., 4114383., 4154318., 4248839.,
      4290146., 4268047., 4309550., 4287255., 4328954.};
  const std::array<int, 4> in_shape = {{3, 9, 9, 2}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x9x9x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      334320.,  335328.,  336336.,  337344.,  424820.,  426120.,  427420.,
      428720.,  517832.,  519440.,  521048.,  522656.,  613228.,  615160.,
      617092.,  619024.,  644476.,  646520.,  648564.,  650608.,  675724.,
      677880.,  680036.,  682192.,  584168.,  586064.,  587960.,  589856.,
      490740.,  492360.,  493980.,  495600.,  395568.,  396896.,  398224.,
      399552.,  507540.,  509160.,  510780.,  512400.,  639875.,  641950.,
      644025.,  646100.,  774070.,  776620.,  779170.,  781720.,  909965.,
      913010.,  916055.,  919100.,  945105.,  948290.,  951475.,  954660.,
      980245.,  983570.,  986895.,  990220.,  842590.,  845500.,  848410.,
      851320.,  703875.,  706350.,  708825.,  711300.,  564260.,  566280.,
      568300.,  570320.,  700488.,  702864.,  705240.,  707616.,  878310.,
      881340.,  884370.,  887400.,  1056828., 1060536., 1064244., 1067952.,
      1235850., 1240260., 1244670., 1249080., 1273314., 1277892., 1282470.,
      1287048., 1310778., 1315524., 1320270., 1325016., 1121772., 1125912.,
      1130052., 1134192., 933030.,  936540.,  940050.,  943560.,  744744.,
      747600.,  750456.,  753312.,  905100.,  908376.,  911652.,  914928.,
      1130045., 1134210., 1138375., 1142540., 1354010., 1359092., 1364174.,
      1369256., 1576771., 1582798., 1588825., 1594852., 1614991., 1621214.,
      1627437., 1633660., 1653211., 1659630., 1666049., 1672468., 1409618.,
      1415204., 1420790., 1426376., 1168125., 1172850., 1177575., 1182300.,
      928956.,  932792.,  936628.,  940464.,  1113756., 1118040., 1122324.,
      1126608., 1385825., 1391250., 1396675., 1402100., 1654898., 1661492.,
      1668086., 1674680., 1920751., 1928542., 1936333., 1944124., 1958971.,
      1966958., 1974945., 1982932., 1997191., 2005374., 2013557., 2021740.,
      1698410., 1705508., 1712606., 1719704., 1403745., 1409730., 1415715.,
      1421700., 1113420., 1118264., 1123108., 1127952., 1322412., 1327704.,
      1332996., 1338288., 1641605., 1648290., 1654975., 1661660., 1955786.,
      1963892., 1971998., 1980104., 2264731., 2274286., 2283841., 2293396.,
      2302951., 2312702., 2322453., 2332204., 2341171., 2351118., 2361065.,
      2371012., 1987202., 1995812., 2004422., 2013032., 1639365., 1646610.,
      1653855., 1661100., 1297884., 1303736., 1309588., 1315440., 1031400.,
      1036368., 1041336., 1046304., 1275630., 1281900., 1288170., 1294440.,
      1514028., 1521624., 1529220., 1536816., 1746402., 1755348., 1764294.,
      1773240., 1774458., 1783572., 1792686., 1801800., 1802514., 1811796.,
      1821078., 1830360., 1523676., 1531704., 1539732., 1547760., 1251630.,
      1258380., 1265130., 1271880., 986568.,  992016.,  997464.,  1002912.,
      760980.,  765480.,  769980.,  774480.,  936675.,  942350.,  948025.,
      953700.,  1106230., 1113100., 1119970., 1126840., 1269485., 1277570.,
      1285655., 1293740., 1288945., 1297170., 1305395., 1313620., 1308405.,
      1316770., 1325135., 1333500., 1099870., 1107100., 1114330., 1121560.,
      898275.,  904350.,  910425.,  916500.,  703780.,  708680.,  713580.,
      718480.,  519216.,  523104.,  526992.,  530880.,  634820.,  639720.,
      644620.,  649520.,  744488.,  750416.,  756344.,  762272.,  848092.,
      855064.,  862036.,  869008.,  860524.,  867608.,  874692.,  881776.,
      872956.,  880152.,  887348.,  894544.,  727880.,  734096.,  740312.,
      746528.,  589380.,  594600.,  599820.,  605040.,  457584.,  461792.,
      466000.,  470208.,  1842864., 1849056., 1855248., 1861440., 2284580.,
      2292360., 2300140., 2307920., 2718440., 2727824., 2737208., 2746592.,
      3144316., 3155320., 3166324., 3177328., 3175564., 3186680., 3197796.,
      3208912., 3206812., 3218040., 3229268., 3240496., 2722568., 2732240.,
      2741912., 2751584., 2246820., 2254920., 2263020., 2271120., 1779696.,
      1786208., 1792720., 1799232., 2211780., 2219880., 2227980., 2236080.,
      2737775., 2747950., 2758125., 2768300., 3252670., 3264940., 3277210.,
      3289480., 3756305., 3770690., 3785075., 3799460., 3791445., 3805970.,
      3820495., 3835020., 3826585., 3841250., 3855915., 3870580., 3243430.,
      3256060., 3268690., 3281320., 2672175., 2682750., 2693325., 2703900.,
      2112980., 2121480., 2129980., 2138480., 2527848., 2538000., 2548152.,
      2558304., 3123630., 3136380., 3149130., 3161880., 3704556., 3719928.,
      3735300., 3750672., 4270434., 4288452., 4306470., 4324488., 4307898.,
      4326084., 4344270., 4362456., 4345362., 4363716., 4382070., 4400424.,
      3676188., 3691992., 3707796., 3723600., 3022830., 3036060., 3049290.,
      3062520., 2385480., 2396112., 2406744., 2417376., 2783004., 2795352.,
      2807700., 2820048., 3432065., 3447570., 3463075., 3478580., 4062002.,
      4080692., 4099382., 4118072., 4672591., 4694494., 4716397., 4738300.,
      4710811., 4732910., 4755009., 4777108., 4749031., 4771326., 4793621.,
      4815916., 4008746., 4027940., 4047134., 4066328., 3288705., 3304770.,
      3320835., 3336900., 2589132., 2602040., 2614948., 2627856., 2991660.,
      3005016., 3018372., 3031728., 3687845., 3704610., 3721375., 3738140.,
      4362890., 4383092., 4403294., 4423496., 5016571., 5040238., 5063905.,
      5087572., 5054791., 5078654., 5102517., 5126380., 5093011., 5117070.,
      5141129., 5165188., 4297538., 4318244., 4338950., 4359656., 3524325.,
      3541650., 3558975., 3576300., 2773596., 2787512., 2801428., 2815344.,
      3200316., 3214680., 3229044., 3243408., 3943625., 3961650., 3979675.,
      3997700., 4663778., 4685492., 4707206., 4728920., 5360551., 5385982.,
      5411413., 5436844., 5398771., 5424398., 5450025., 5475652., 5436991.,
      5462814., 5488637., 5514460., 4586330., 4608548., 4630766., 4652984.,
      3759945., 3778530., 3797115., 3815700., 2958060., 2972984., 2987908.,
      3002832., 2423304., 2436048., 2448792., 2461536., 2976630., 2992620.,
      3008610., 3024600., 3508572., 3527832., 3547092., 3566352., 4018938.,
      4041492., 4064046., 4086600., 4046994., 4069716., 4092438., 4115160.,
      4075050., 4097940., 4120830., 4143720., 3424908., 3444600., 3464292.,
      3483984., 2797110., 2813580., 2830050., 2846520., 2191848., 2205072.,
      2218296., 2231520., 1739460., 1750440., 1761420., 1772400., 2127375.,
      2141150., 2154925., 2168700., 2496190., 2512780., 2529370., 2545960.,
      2845745., 2865170., 2884595., 2904020., 2865205., 2884770., 2904335.,
      2923900., 2884665., 2904370., 2924075., 2943780., 2412070., 2429020.,
      2445970., 2462920., 1959375., 1973550., 1987725., 2001900., 1526740.,
      1538120., 1549500., 1560880., 1156848., 1165920., 1174992., 1184064.,
      1405940., 1417320., 1428700., 1440080., 1638728., 1652432., 1666136.,
      1679840., 1855084., 1871128., 1887172., 1903216., 1867516., 1883672.,
      1899828., 1915984., 1879948., 1896216., 1912484., 1928752., 1559912.,
      1573904., 1587896., 1601888., 1256820., 1268520., 1280220., 1291920.,
      970800.,  980192.,  989584.,  998976.,  3351408., 3362784., 3374160.,
      3385536., 4144340., 4158600., 4172860., 4187120., 4919048., 4936208.,
      4953368., 4970528., 5675404., 5695480., 5715556., 5735632., 5706652.,
      5726840., 5747028., 5767216., 5737900., 5758200., 5778500., 5798800.,
      4860968., 4878416., 4895864., 4913312., 4002900., 4017480., 4032060.,
      4046640., 3163824., 3175520., 3187216., 3198912., 3916020., 3930600.,
      3945180., 3959760., 4835675., 4853950., 4872225., 4890500., 5731270.,
      5753260., 5775250., 5797240., 6602645., 6628370., 6654095., 6679820.,
      6637785., 6663650., 6689515., 6715380., 6672925., 6698930., 6724935.,
      6750940., 5644270., 5666620., 5688970., 5711320., 4640475., 4659150.,
      4677825., 4696500., 3661700., 3676680., 3691660., 3706640., 4355208.,
      4373136., 4391064., 4408992., 5368950., 5391420., 5413890., 5436360.,
      6352284., 6379320., 6406356., 6433392., 7305018., 7336644., 7368270.,
      7399896., 7342482., 7374276., 7406070., 7437864., 7379946., 7411908.,
      7443870., 7475832., 6230604., 6258072., 6285540., 6313008., 5112630.,
      5135580., 5158530., 5181480., 4026216., 4044624., 4063032., 4081440.,
      4660908., 4682328., 4703748., 4725168., 5734085., 5760930., 5787775.,
      5814620., 6769994., 6802292., 6834590., 6866888., 7768411., 7806190.,
      7843969., 7881748., 7806631., 7844606., 7882581., 7920556., 7844851.,
      7883022., 7921193., 7959364., 6607874., 6640676., 6673478., 6706280.,
      5409285., 5436690., 5464095., 5491500., 4249308., 4271288., 4293268.,
      4315248., 4869564., 4891992., 4914420., 4936848., 5989865., 6017970.,
      6046075., 6074180., 7070882., 7104692., 7138502., 7172312., 8112391.,
      8151934., 8191477., 8231020., 8150611., 8190350., 8230089., 8269828.,
      8188831., 8228766., 8268701., 8308636., 6896666., 6930980., 6965294.,
      6999608., 5644905., 5673570., 5702235., 5730900., 4433772., 4456760.,
      4479748., 4502736., 5078220., 5101656., 5125092., 5148528., 6245645.,
      6275010., 6304375., 6333740., 7371770., 7407092., 7442414., 7477736.,
      8456371., 8497678., 8538985., 8580292., 8494591., 8536094., 8577597.,
      8619100., 8532811., 8574510., 8616209., 8657908., 7185458., 7221284.,
      7257110., 7292936., 5880525., 5910450., 5940375., 5970300., 4618236.,
      4642232., 4666228., 4690224., 3815208., 3835728., 3856248., 3876768.,
      4677630., 4703340., 4729050., 4754760., 5503116., 5534040., 5564964.,
      5595888., 6291474., 6327636., 6363798., 6399960., 6319530., 6355860.,
      6392190., 6428520., 6347586., 6384084., 6420582., 6457080., 5326140.,
      5357496., 5388852., 5420208., 4342590., 4368780., 4394970., 4421160.,
      3397128., 3418128., 3439128., 3460128., 2717940., 2735400., 2752860.,
      2770320., 3318075., 3339950., 3361825., 3383700., 3886150., 3912460.,
      3938770., 3965080., 4422005., 4452770., 4483535., 4514300., 4441465.,
      4472370., 4503275., 4534180., 4460925., 4491970., 4523015., 4554060.,
      3724270., 3750940., 3777610., 3804280., 3020475., 3042750., 3065025.,
      3087300., 2349700., 2367560., 2385420., 2403280., 1794480., 1808736.,
      1822992., 1837248., 2177060., 2194920., 2212780., 2230640., 2532968.,
      2554448., 2575928., 2597408., 2862076., 2887192., 2912308., 2937424.,
      2874508., 2899736., 2924964., 2950192., 2886940., 2912280., 2937620.,
      2962960., 2391944., 2413712., 2435480., 2457248., 1924260., 1942440.,
      1960620., 1978800., 1484016., 1498592., 1513168., 1527744.};
  const std::array<int, 4> in_shape = {{3, 9, 9, 2}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x9x9x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1576771., 1582798., 1588825., 1594852., 1614991., 1621214., 1627437.,
      1633660., 1653211., 1659630., 1666049., 1672468., 1920751., 1928542.,
      1936333., 1944124., 1958971., 1966958., 1974945., 1982932., 1997191.,
      2005374., 2013557., 2021740., 2264731., 2274286., 2283841., 2293396.,
      2302951., 2312702., 2322453., 2332204., 2341171., 2351118., 2361065.,
      2371012., 4672591., 4694494., 4716397., 4738300., 4710811., 4732910.,
      4755009., 4777108., 4749031., 4771326., 4793621., 4815916., 5016571.,
      5040238., 5063905., 5087572., 5054791., 5078654., 5102517., 5126380.,
      5093011., 5117070., 5141129., 5165188., 5360551., 5385982., 5411413.,
      5436844., 5398771., 5424398., 5450025., 5475652., 5436991., 5462814.,
      5488637., 5514460., 7768411., 7806190., 7843969., 7881748., 7806631.,
      7844606., 7882581., 7920556., 7844851., 7883022., 7921193., 7959364.,
      8112391., 8151934., 8191477., 8231020., 8150611., 8190350., 8230089.,
      8269828., 8188831., 8228766., 8268701., 8308636., 8456371., 8497678.,
      8538985., 8580292., 8494591., 8536094., 8577597., 8619100., 8532811.,
      8574510., 8616209., 8657908.};
  const std::array<int, 4> in_shape = {{3, 9, 9, 2}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x9x9x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      668000.,  849080.,  1035280., 1226344., 1289288., 1352232., 1169296.,
      982520.,  792160.,  1016280., 1281550., 1550660., 1823290., 1894130.,
      1964970., 1689380., 1411550., 1131800., 1404816., 1761780., 2120280.,
      2479932., 2555532., 2631132., 2252184., 1873620., 1495824., 1817480.,
      2269610., 2719948., 3168046., 3245270., 3322494., 2833516., 2348570.,
      1868104., 2238824., 2786210., 3327772., 3863062., 3940286., 4017510.,
      3417148., 2824850., 2241064., 2660168., 3302810., 3935596., 4558078.,
      4635302., 4712526., 4000780., 3301130., 2614024., 2078352., 2571060.,
      3052248., 3521532., 3578316., 3635100., 3073560., 2525460., 1991184.,
      1536920., 1892350., 2235620., 2566410., 2605890., 2645370., 2224580.,
      1817550., 1424600., 1052000., 1286840., 1509904., 1720936., 1746248.,
      1771560., 1478032., 1197560., 930400.,  3705824., 4594520., 5467600.,
      6324808., 6387752., 6450696., 5477200., 4520600., 3581152., 4450680.,
      5509750., 6546740., 7561330., 7632170., 7703010., 6529940., 5380550.,
      4255160., 4302160., 5120868., 5918200., 6693772., 6411996., 6138412.,
      5189688., 4264260., 3362512., 3391592., 4010850., 4608412., 5183830.,
      4961022., 4746406., 3994300., 3266130., 2562344., 2612808., 3076442.,
      3522540., 3950654., 3785190., 3627918., 3048076., 2488010., 1948168.,
      2063400., 2428754., 2780732., 3118886., 3010766., 2910838., 2445916.,
      1996610., 1563368., 1307216., 1520676., 1724280., 1917644., 1846428.,
      1783404., 1491384., 1211140., 943056.,  736568.,  847078.,  952276.,
      1051842., 1020666., 997682.,  832820.,  674870.,  524152.,  367584.,
      428120.,  488912.,  549704.,  561704.,  581896.,  494416.,  407960.,
      322784.,  1943136., 2421240., 2895760., 3366440., 3429384., 3492328.,
      2977552., 2467640., 1962848., 2457880., 3056350., 3647780., 4231850.,
      4302690., 4373530., 3721220., 3077550., 2442840., 2951952., 3663060.,
      4362648., 5050332., 5125932., 5201532., 4416216., 3644340., 2886288.,
      3409224., 4221210., 5016172., 5793662., 5870886., 5948110., 5038348.,
      4147850., 3277064., 3830568., 4737810., 5623996., 6488678., 6565902.,
      6643126., 5621980., 4624130., 3650024., 4251912., 5254410., 6231820.,
      7183694., 7260918., 7338142., 6205612., 5100410., 4022984., 3259920.,
      4015380., 4746264., 5452188., 5508972., 5565756., 4689240., 3839220.,
      3016080., 2369240., 2905550., 3418820., 3908730., 3948210., 3987690.,
      3342500., 2721950., 2126360., 1596000., 1945080., 2273680., 2581544.,
      2606856., 2632168., 2189584., 1768760., 1369952.};
  const std::array<int, 4> in_shape = {{3, 9, 9, 4}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x9x9x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3168046., 3245270., 3322494., 3863062., 3940286., 4017510., 4558078.,
      4635302., 4712526., 5183830., 4961022., 4746406., 3950654., 3785190.,
      3627918., 3118886., 3010766., 2910838., 5793662., 5870886., 5948110.,
      6488678., 6565902., 6643126., 7183694., 7260918., 7338142.};
  const std::array<int, 4> in_shape = {{3, 9, 9, 4}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x9x9x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1332000.,  1336000.,  1693000.,  1698160.,  2064176.,  2070560.,
      2445016.,  2452688.,  2570456.,  2578576.,  2695896.,  2704464.,
      2331056.,  2338592.,  1958600.,  1965040.,  1579040.,  1584320.,
      2026120.,  2032560.,  2554850.,  2563100.,  3091180.,  3101320.,
      3634470.,  3646580.,  3775590.,  3788260.,  3916710.,  3929940.,
      3367180.,  3378760.,  2813250.,  2823100.,  2255560.,  2263600.,
      2800176.,  2809632.,  3511500.,  3523560.,  4225800.,  4240560.,
      4942308.,  4959864.,  5092836.,  5111064.,  5243364.,  5262264.,
      4487880.,  4504368.,  3733260.,  3747240.,  2980272.,  2991648.,
      3621912.,  3634960.,  4522630.,  4539220.,  5419652.,  5439896.,
      6312082.,  6336092.,  6465746.,  6490540.,  6619410.,  6644988.,
      5644772.,  5667032.,  4678310.,  4697140.,  3720920.,  3736208.,
      4460568.,  4477648.,  5550790.,  5572420.,  6629252.,  6655544.,
      7695058.,  7726124.,  7848722.,  7880572.,  8002386.,  8035020.,
      6805988.,  6834296.,  5625830.,  5649700.,  4462808.,  4482128.,
      5299224.,  5320336.,  6578950.,  6605620.,  7838852.,  7871192.,
      9078034.,  9116156.,  9231698.,  9270604.,  9385362.,  9425052.,
      7967204.,  8001560.,  6573350.,  6602260.,  5204696.,  5228048.,
      4136880.,  4156704.,  5117100.,  5142120.,  6074184.,  6104496.,
      7007364.,  7043064.,  7120260.,  7156632.,  7233156.,  7270200.,
      6115080.,  6147120.,  5023980.,  5050920.,  3960624.,  3982368.,
      3055880.,  3073840.,  3762050.,  3784700.,  4443820.,  4471240.,
      5100550.,  5132820.,  5178950.,  5211780.,  5257350.,  5290740.,
      4420300.,  4449160.,  3610850.,  3635100.,  2829640.,  2849200.,
      2088480.,  2104000.,  2554120.,  2573680.,  2996144.,  3019808.,
      3414040.,  3441872.,  3464216.,  3492496.,  3514392.,  3543120.,
      2931248.,  2956064.,  2374280.,  2395120.,  1844000.,  1860800.,
      7386912.,  7411648.,  9157960.,  9189040.,  10897712., 10935200.,
      12605656., 12649616., 12731096., 12775504., 12856536., 12901392.,
      10915760., 10954400., 9008840.,  9041200.,  7136288.,  7162304.,
      8869000.,  8901360.,  10978850., 11019500., 13044460., 13093480.,
      15065190., 15122660., 15206310., 15264340., 15347430., 15406020.,
      13009420., 13059880., 10718850., 10761100., 8476360.,  8510320.,
      8567856.,  8604320.,  10196940., 10241736., 11783176., 11836400.,
      13325796., 13387544., 12763620., 12823992., 12217828., 12276824.,
      10328520., 10379376., 8485900.,  8528520.,  6690736.,  6725024.,
      6746136.,  6783184.,  7976134.,  8021700.,  9162628.,  9216824.,
      10304722., 10367660., 9860370.,  9922044.,  9432402.,  9492812.,
      7936484.,  7988600.,  6488550.,  6532260.,  5089496.,  5124688.,
      5192728.,  5225616.,  6112518.,  6152884.,  6997124.,  7045080.,
      7845650.,  7901308.,  7515986.,  7570380.,  7202706.,  7255836.,
      6050276.,  6096152.,  4937510.,  4976020.,  3865304.,  3896336.,
      4098072.,  4126800.,  4822342.,  4857508.,  5519748.,  5561464.,
      6189394.,  6237772.,  5974418.,  6021532.,  5775826.,  5821676.,
      4852196.,  4891832.,  3959910.,  3993220.,  3099864.,  3126736.,
      2592176.,  2614432.,  3014316.,  3041352.,  3416648.,  3448560.,
      3798404.,  3835288.,  3657348.,  3692856.,  3532676.,  3566808.,
      2953224.,  2982768.,  2397420.,  2422280.,  1866032.,  1886112.,
      1457928.,  1473136.,  1675970.,  1694156.,  1883308.,  1904552.,
      2079302.,  2103684.,  2018438.,  2041332.,  1973958.,  1995364.,
      1647052.,  1665640.,  1334050.,  1349740.,  1035592.,  1048304.,
      727584.,   735168.,   847624.,   856240.,   968112.,   977824.,
      1088536.,  1099408.,  1114136.,  1123408.,  1156120.,  1163792.,
      982064.,   988832.,   810120.,   815920.,   640800.,   645568.,
      3873568.,  3886272.,  4826440.,  4842480.,  5772080.,  5791520.,
      6709976.,  6732880.,  6835416.,  6858768.,  6960856.,  6984656.,
      5934512.,  5955104.,  4917960.,  4935280.,  3911712.,  3925696.,
      4898440.,  4915760.,  6090850.,  6112700.,  7269100.,  7295560.,
      8432550.,  8463700.,  8573670.,  8605380.,  8714790.,  8747060.,
      7414540.,  7442440.,  6131650.,  6155100.,  4866760.,  4885680.,
      5881392.,  5903904.,  7297740.,  7326120.,  8690952.,  8725296.,
      10060260., 10100664., 10210788., 10251864., 10361316., 10403064.,
      8796360.,  8832432.,  7258380.,  7288680.,  5748144.,  5772576.,
      6790168.,  6818448.,  8406790.,  8442420.,  9989252.,  10032344.,
      11536658., 11587324., 11690322., 11741772., 11843986., 11896220.,
      10031588., 10076696., 8257830.,  8295700.,  6523608.,  6554128.,
      7628824.,  7661136.,  9434950.,  9475620.,  11198852., 11247992.,
      12919634., 12977356., 13073298., 13131804., 13226962., 13286252.,
      11192804., 11243960., 9205350.,  9248260.,  7265496.,  7300048.,
      8467480.,  8503824.,  10463110., 10508820., 12408452., 12463640.,
      14302610., 14367388., 14456274., 14521836., 14609938., 14676284.,
      12354020., 12411224., 10152870., 10200820., 8007384.,  8045968.,
      6486960.,  6519840.,  7989420.,  8030760.,  9442632.,  9492528.,
      10845828., 10904376., 10958724., 11017944., 11071620., 11131512.,
      9326856.,  9378480.,  7635180.,  7678440.,  5997360.,  6032160.,
      4709640.,  4738480.,  5774850.,  5811100.,  6793900.,  6837640.,
      7766150.,  7817460.,  7844550.,  7896420.,  7922950.,  7975380.,
      6639820.,  6685000.,  5406050.,  5443900.,  4222280.,  4252720.,
      3167776.,  3192000.,  3859720.,  3890160.,  4510640.,  4547360.,
      5120024.,  5163088.,  5170200.,  5213712.,  5220376.,  5264336.,
      4341296.,  4379168.,  3505800.,  3537520.,  2714400.,  2739904.};
  const std::array<int, 4> in_shape = {{3, 9, 9, 4}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x9x9x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6312082.,  6336092.,  6465746.,  6490540.,  6619410.,  6644988.,
      7695058.,  7726124.,  7848722.,  7880572.,  8002386.,  8035020.,
      9078034.,  9116156.,  9231698.,  9270604.,  9385362.,  9425052.,
      10304722., 10367660., 9860370.,  9922044.,  9432402.,  9492812.,
      7845650.,  7901308.,  7515986.,  7570380.,  7202706.,  7255836.,
      6189394.,  6237772.,  5974418.,  6021532.,  5775826.,  5821676.,
      11536658., 11587324., 11690322., 11741772., 11843986., 11896220.,
      12919634., 12977356., 13073298., 13131804., 13226962., 13286252.,
      14302610., 14367388., 14456274., 14521836., 14609938., 14676284.};
  const std::array<int, 4> in_shape = {{3, 9, 9, 4}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x9x9x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      760480.,   764480.,   768480.,   772480.,   1012328.,  1017488.,
      1022648.,  1027808.,  1268080.,  1274464.,  1280848.,  1287232.,
      1526712.,  1534384.,  1542056.,  1549728.,  1637880.,  1646000.,
      1654120.,  1662240.,  1749048.,  1757616.,  1766184.,  1774752.,
      1560048.,  1567584.,  1575120.,  1582656.,  1380456.,  1386896.,
      1393336.,  1399776.,  1211296.,  1216576.,  1221856.,  1227136.,
      1335272.,  1341712.,  1348152.,  1354592.,  1774474.,  1782724.,
      1790974.,  1799224.,  2212412.,  2222552.,  2232692.,  2242832.,
      2647806.,  2659916.,  2672026.,  2684136.,  2790222.,  2802892.,
      2815562.,  2828232.,  2932638.,  2945868.,  2959098.,  2972328.,
      2596060.,  2607640.,  2619220.,  2630800.,  2275338.,  2285188.,
      2295038.,  2304888.,  1971752.,  1979792.,  1987832.,  1995872.,
      2069360.,  2078816.,  2088272.,  2097728.,  2725500.,  2737560.,
      2749620.,  2761680.,  3371112.,  3385872.,  3400632.,  3415392.,
      4004660.,  4022216.,  4039772.,  4057328.,  4165780.,  4184008.,
      4202236.,  4220464.,  4326900.,  4345800.,  4364700.,  4383600.,
      3800360.,  3816848.,  3833336.,  3849824.,  3300220.,  3314200.,
      3328180.,  3342160.,  2828016.,  2839392.,  2850768.,  2862144.,
      2898232.,  2911280.,  2924328.,  2937376.,  3784766.,  3801356.,
      3817946.,  3834536.,  4647412.,  4667656.,  4687900.,  4708144.,
      5484378.,  5508388.,  5532398.,  5556408.,  5651658.,  5676452.,
      5701246.,  5726040.,  5818938.,  5844516.,  5870094.,  5895672.,
      5076180.,  5098440.,  5120700.,  5142960.,  4374462.,  4393292.,
      4412122.,  4430952.,  3715576.,  3730864.,  3746152.,  3761440.,
      3760504.,  3777584.,  3794664.,  3811744.,  4877582.,  4899212.,
      4920842.,  4942472.,  5954644.,  5980936.,  6007228.,  6033520.,
      6989898.,  7020964.,  7052030.,  7083096.,  7157178.,  7189028.,
      7220878.,  7252728.,  7324458.,  7357092.,  7389726.,  7422360.,
      6360372.,  6388680.,  6416988.,  6445296.,  5453454.,  5477324.,
      5501194.,  5525064.,  4605496.,  4624816.,  4644136.,  4663456.,
      4622776.,  4643888.,  4665000.,  4686112.,  5970398.,  5997068.,
      6023738.,  6050408.,  7261876.,  7294216.,  7326556.,  7358896.,
      8495418.,  8533540.,  8571662.,  8609784.,  8662698.,  8701604.,
      8740510.,  8779416.,  8829978.,  8869668.,  8909358.,  8949048.,
      7644564.,  7678920.,  7713276.,  7747632.,  6532446.,  6561356.,
      6590266.,  6619176.,  5495416.,  5518768.,  5542120.,  5565472.,
      4212208.,  4232032.,  4251856.,  4271680.,  5515164.,  5540184.,
      5565204.,  5590224.,  6763560.,  6793872.,  6824184.,  6854496.,
      7955860.,  7991560.,  8027260.,  8062960.,  8099060.,  8135432.,
      8171804.,  8208176.,  8242260.,  8279304.,  8316348.,  8353392.,
      7192808.,  7224848.,  7256888.,  7288928.,  6213788.,  6240728.,
      6267668.,  6294608.,  5306736.,  5328480.,  5350224.,  5371968.,
      4259816.,  4277776.,  4295736.,  4313696.,  5642890.,  5665540.,
      5688190.,  5710840.,  6977084.,  7004504.,  7031924.,  7059344.,
      8261118.,  8293388.,  8325658.,  8357928.,  8392782.,  8425612.,
      8458442.,  8491272.,  8524446.,  8557836.,  8591226.,  8624616.,
      7498972.,  7527832.,  7556692.,  7585552.,  6536970.,  6561220.,
      6585470.,  6609720.,  5639720.,  5659280.,  5678840.,  5698400.,
      4161440.,  4176960.,  4192480.,  4208000.,  5088680.,  5108240.,
      5127800.,  5147360.,  5968624.,  5992288.,  6015952.,  6039616.,
      6800248.,  6828080.,  6855912.,  6883744.,  6900152.,  6928432.,
      6956712.,  6984992.,  7000056.,  7028784.,  7057512.,  7086240.,
      5837680.,  5862496.,  5887312.,  5912128.,  4727720.,  4748560.,
      4769400.,  4790240.,  3671200.,  3688000.,  3704800.,  3721600.,
      5550496.,  5575232.,  5599968.,  5624704.,  7290152.,  7321232.,
      7352312.,  7383392.,  8950768.,  8988256.,  9025744.,  9063232.,
      10531320., 10575280., 10619240., 10663200., 10642488., 10686896.,
      10731304., 10775712., 10753656., 10798512., 10843368., 10888224.,
      9408624.,  9447264.,  9485904.,  9524544.,  8155944.,  8188304.,
      8220664.,  8253024.,  6996640.,  7022656.,  7048672.,  7074688.,
      7696040.,  7728400.,  7760760.,  7793120.,  9963898.,  10004548.,
      10045198., 10085848., 12126812., 12175832., 12224852., 12273872.,
      14183502., 14240972., 14298442., 14355912., 14325918., 14383948.,
      14441978., 14500008., 14468334., 14526924., 14585514., 14644104.,
      12551932., 12602392., 12652852., 12703312., 10755066., 10797316.,
      10839566., 10881816., 9079016.,  9112976.,  9146936.,  9180896.,
      8375792.,  8412256.,  8448720.,  8485184.,  10583196., 10627992.,
      10672788., 10717584., 12688424., 12741648., 12794872., 12848096.,
      14689940., 14751688., 14813436., 14875184., 14476276., 14536648.,
      14597020., 14657392., 14295380., 14354376., 14413372., 14472368.,
      12449000., 12499856., 12550712., 12601568., 10720668., 10763288.,
      10805908., 10848528., 9111920.,  9146208.,  9180496.,  9214784.,
      8115064.,  8152112.,  8189160.,  8226208.,  10425230., 10470796.,
      10516362., 10561928., 12631892., 12686088., 12740284., 12794480.,
      14733258., 14796196., 14859134., 14922072., 14755130., 14816804.,
      14878478., 14940152., 14809770., 14870180., 14930590., 14991000.,
      12922932., 12975048., 13027164., 13079280., 11156750., 11200460.,
      11244170., 11287880., 9513016.,  9548208.,  9583400.,  9618592.,
      8395704.,  8428592.,  8461480.,  8494368.,  10987614., 11027980.,
      11068346., 11108712., 12444084., 12492040., 12539996., 12587952.,
      13811898., 13867556., 13923214., 13978872., 13014570., 13068964.,
      13123358., 13177752., 12250010., 12303140., 12356270., 12409400.,
      10221716., 10267592., 10313468., 10359344., 8297438.,  8335948.,
      8374458.,  8412968.,  6478968.,  6510000.,  6541032.,  6572064.,
      6448120.,  6476848.,  6505576.,  6534304.,  7453998.,  7489164.,
      7524330.,  7559496.,  8389652.,  8431368.,  8473084.,  8514800.,
      9253290.,  9301668.,  9350046.,  9398424.,  8685338.,  8732452.,
      8779566.,  8826680.,  8150154.,  8196004.,  8241854.,  8287704.,
      6799604.,  6839240.,  6878876.,  6918512.,  5536430.,  5569740.,
      5603050.,  5636360.,  4362424.,  4389296.,  4416168.,  4443040.,
      3815536.,  3837792.,  3860048.,  3882304.,  4387772.,  4414808.,
      4441844.,  4468880.,  4912104.,  4944016.,  4975928.,  5007840.,
      5386996.,  5423880.,  5460764.,  5497648.,  5024340.,  5059848.,
      5095356.,  5130864.,  4694452.,  4728584.,  4762716.,  4796848.,
      3951784.,  3981328.,  4010872.,  4040416.,  3272892.,  3297752.,
      3322612.,  3347472.,  2659312.,  2679392.,  2699472.,  2719552.,
      2221736.,  2236944.,  2252152.,  2267360.,  2630266.,  2648452.,
      2666638.,  2684824.,  3017308.,  3038552.,  3059796.,  3081040.,
      3381582.,  3405964.,  3430346.,  3454728.,  3236766.,  3259660.,
      3282554.,  3305448.,  3124718.,  3146124.,  3167530.,  3188936.,
      2732796.,  2751384.,  2769972.,  2788560.,  2376954.,  2392644.,
      2408334.,  2424024.,  2058472.,  2071184.,  2083896.,  2096608.,
      1447584.,  1455168.,  1462752.,  1470336.,  1686632.,  1695248.,
      1703864.,  1712480.,  1926512.,  1936224.,  1945936.,  1955648.,
      2166200.,  2177072.,  2187944.,  2198816.,  2219000.,  2228272.,
      2237544.,  2246816.,  2304568.,  2312240.,  2319912.,  2327584.,
      1957360.,  1964128.,  1970896.,  1977664.,  1614440.,  1620240.,
      1626040.,  1631840.,  1276832.,  1281600.,  1286368.,  1291136.,
      2771104.,  2783808.,  2796512.,  2809216.,  3647464.,  3663504.,
      3679544.,  3695584.,  4492912.,  4512352.,  4531792.,  4551232.,
      5306424.,  5329328.,  5352232.,  5375136.,  5417592.,  5440944.,
      5464296.,  5487648.,  5528760.,  5552560.,  5576360.,  5600160.,
      4854512.,  4875104.,  4895696.,  4916288.,  4224488.,  4241808.,
      4259128.,  4276448.,  3639712.,  3653696.,  3667680.,  3681664.,
      4005224.,  4022544.,  4039864.,  4057184.,  5212010.,  5233860.,
      5255710.,  5277560.,  6374012.,  6400472.,  6426932.,  6453392.,
      7489950.,  7521100.,  7552250.,  7583400.,  7632366.,  7664076.,
      7695786.,  7727496.,  7774782.,  7807052.,  7839322.,  7871592.,
      6775068.,  6802968.,  6830868.,  6858768.,  5834730.,  5858180.,
      5881630.,  5905080.,  4955048.,  4973968.,  4992888.,  5011808.,
      5154928.,  5177440.,  5199952.,  5222464.,  6660796.,  6689176.,
      6717556.,  6745936.,  8103912.,  8138256.,  8172600.,  8206944.,
      9482740.,  9523144.,  9563548.,  9603952.,  9643860.,  9684936.,
      9726012.,  9767088.,  9804980.,  9846728.,  9888476.,  9930224.,
      8498344.,  8534416.,  8570488.,  8606560.,  7270332.,  7300632.,
      7330932.,  7361232.,  6122480.,  6146912.,  6171344.,  6195776.,
      6155704.,  6183984.,  6212264.,  6240544.,  7913182.,  7948812.,
      7984442.,  8020072.,  9585844.,  9628936.,  9672028.,  9715120.,
      11171898., 11222564., 11273230., 11323896., 11339178., 11390628.,
      11442078., 11493528., 11506458., 11558692., 11610926., 11663160.,
      9927572.,  9972680.,  10017788., 10062896., 8450654.,  8488524.,
      8526394.,  8564264.,  7077496.,  7108016.,  7138536.,  7169056.,
      7017976.,  7050288.,  7082600.,  7114912.,  9005998.,  9046668.,
      9087338.,  9128008.,  10893076., 10942216., 10991356., 11040496.,
      12677418., 12735140., 12792862., 12850584., 12844698., 12903204.,
      12961710., 13020216., 13011978., 13071268., 13130558., 13189848.,
      11211764., 11262920., 11314076., 11365232., 9529646.,  9572556.,
      9615466.,  9658376.,  7967416.,  8001968.,  8036520.,  8071072.,
      7880248.,  7916592.,  7952936.,  7989280.,  10098814., 10144524.,
      10190234., 10235944., 12200308., 12255496., 12310684., 12365872.,
      14182938., 14247716., 14312494., 14377272., 14350218., 14415780.,
      14481342., 14546904., 14517498., 14583844., 14650190., 14716536.,
      12495956., 12553160., 12610364., 12667568., 10608638., 10656588.,
      10704538., 10752488., 8857336.,  8895920.,  8934504.,  8973088.,
      6949616.,  6982496.,  7015376.,  7048256.,  9015260.,  9056600.,
      9097940.,  9139280.,  10974120., 11024016., 11073912., 11123808.,
      12824660., 12883208., 12941756., 13000304., 12967860., 13027080.,
      13086300., 13145520., 13111060., 13170952., 13230844., 13290736.,
      11368552., 11420176., 11471800., 11523424., 9748700.,  9791960.,
      9835220.,  9878480.,  8253040.,  8287840.,  8322640.,  8357440.,
      6720872.,  6749712.,  6778552.,  6807392.,  8819306.,  8855556.,
      8891806.,  8928056.,  10825340., 10869080., 10912820., 10956560.,
      12737694., 12789004., 12840314., 12891624., 12869358., 12921228.,
      12973098., 13024968., 13001022., 13053452., 13105882., 13158312.,
      11364636., 11409816., 11454996., 11500176., 9835242.,  9873092.,
      9910942.,  9948792.,  8414120.,  8444560.,  8475000.,  8505440.,
      6311328.,  6335552.,  6359776.,  6384000.,  7689000.,  7719440.,
      7749880.,  7780320.,  8984560.,  9021280.,  9058000.,  9094720.,
      10196984., 10240048., 10283112., 10326176., 10296888., 10340400.,
      10383912., 10427424., 10396792., 10440752., 10484712., 10528672.,
      8644720.,  8682592.,  8720464.,  8758336.,  6979880.,  7011600.,
      7043320.,  7075040.,  5403296.,  5428800.,  5454304.,  5479808.};
  const std::array<int, 4> in_shape = {{3, 9, 9, 4}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x9x9x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5484378.,  5508388.,  5532398.,  5556408.,  5651658.,  5676452.,
      5701246.,  5726040.,  5818938.,  5844516.,  5870094.,  5895672.,
      6989898.,  7020964.,  7052030.,  7083096.,  7157178.,  7189028.,
      7220878.,  7252728.,  7324458.,  7357092.,  7389726.,  7422360.,
      8495418.,  8533540.,  8571662.,  8609784.,  8662698.,  8701604.,
      8740510.,  8779416.,  8829978.,  8869668.,  8909358.,  8949048.,
      14733258., 14796196., 14859134., 14922072., 14755130., 14816804.,
      14878478., 14940152., 14809770., 14870180., 14930590., 14991000.,
      13811898., 13867556., 13923214., 13978872., 13014570., 13068964.,
      13123358., 13177752., 12250010., 12303140., 12356270., 12409400.,
      9253290.,  9301668.,  9350046.,  9398424.,  8685338.,  8732452.,
      8779566.,  8826680.,  8150154.,  8196004.,  8241854.,  8287704.,
      11171898., 11222564., 11273230., 11323896., 11339178., 11390628.,
      11442078., 11493528., 11506458., 11558692., 11610926., 11663160.,
      12677418., 12735140., 12792862., 12850584., 12844698., 12903204.,
      12961710., 13020216., 13011978., 13071268., 13130558., 13189848.,
      14182938., 14247716., 14312494., 14377272., 14350218., 14415780.,
      14481342., 14546904., 14517498., 14583844., 14650190., 14716536.};
  const std::array<int, 4> in_shape = {{3, 9, 9, 4}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x9x10x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      11780.,  14930.,  18154.,  21448.,  22442.,  23436.,  24430.,  21070.,
      17660.,  14204.,  17900.,  22525.,  27200.,  31920.,  33040.,  34160.,
      35280.,  30275.,  25250.,  20210.,  24730.,  30965.,  37209.,  43456.,
      44653.,  45850.,  47047.,  40215.,  33410.,  26638.,  31990.,  39900.,
      47761.,  55566.,  56791.,  58016.,  59241.,  50470.,  41790.,  33208.,
      39410.,  49000.,  58471.,  67816.,  69041.,  70266.,  71491.,  60760.,
      50190.,  39788.,  46830.,  58100.,  69181.,  80066.,  81291.,  82516.,
      83741.,  71050.,  58590.,  46368.,  36670.,  45335.,  53787.,  62020.,
      62923.,  63826.,  64729.,  54705.,  44930.,  35410.,  27200.,  33475.,
      39530.,  45360.,  45990.,  46620.,  47250.,  39725.,  32450.,  25430.,
      18700.,  22870.,  26830.,  30576.,  30982.,  31388.,  31794.,  26530.,
      21500.,  16708.,  65060.,  80630.,  95914.,  110908., 111902., 112896.,
      113890., 96670.,  79760.,  63164.,  78200.,  96775.,  114950., 132720.,
      133840., 134960., 136080., 115325., 95000.,  75110.,  89530.,  110615.,
      131169., 151186., 152383., 153580., 154777., 130935., 107660., 84958.,
      98770.,  121800., 144151., 165816., 167041., 168266., 169491., 143080.,
      117390., 92428.,  106190., 130900., 154861., 178066., 179291., 180516.,
      181741., 153370., 125790., 99008.,  113610., 140000., 165571., 190316.,
      191541., 192766., 193991., 163660., 134190., 105588., 86350.,  106085.,
      125067., 143290., 144193., 145096., 145999., 122745., 100280., 78610.,
      62300.,  76225.,  89480.,  102060., 102690., 103320., 103950., 86975.,
      70700.,  55130.,  41740.,  50770.,  59230.,  67116.,  67522.,  67928.,
      68334.,  56770.,  45800.,  35428.,  118340., 146330., 173674., 200368.,
      201362., 202356., 203350., 172270., 141860., 112124., 138500., 171025.,
      202700., 233520., 234640., 235760., 236880., 200375., 164750., 130010.,
      154330., 190265., 225129., 258916., 260113., 261310., 262507., 221655.,
      181910., 143278., 165550., 203700., 240541., 276066., 277291., 278516.,
      279741., 235690., 192990., 151648., 172970., 212800., 251251., 288316.,
      289541., 290766., 291991., 245980., 201390., 158228., 180390., 221900.,
      261961., 300566., 301791., 303016., 304241., 256270., 209790., 164808.,
      136030., 166835., 196347., 224560., 225463., 226366., 227269., 190785.,
      155630., 121810., 97400.,  118975., 139430., 158760., 159390., 160020.,
      160650., 134225., 108950., 84830.,  64780.,  78670.,  91630.,  103656.,
      104062., 104468., 104874., 87010.,  70100.,  54148.};
  const std::array<int, 4> in_shape = {{3, 9, 10, 1}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x9x10x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      55566.,  56791.,  58016.,  59241.,  67816.,  69041.,  70266.,  71491.,
      80066.,  81291.,  82516.,  83741.,  165816., 167041., 168266., 169491.,
      178066., 179291., 180516., 181741., 190316., 191541., 192766., 193991.,
      276066., 277291., 278516., 279741., 288316., 289541., 290766., 291991.,
      300566., 301791., 303016., 304241.};
  const std::array<int, 4> in_shape = {{3, 9, 10, 1}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x9x10x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      23280.,  23560.,  29500.,  29860.,  35864.,  36308.,  42364.,  42896.,
      44324.,  44884.,  46284.,  46872.,  48244.,  48860.,  41600.,  42140.,
      34860.,  35320.,  28032.,  28408.,  35350.,  35800.,  44475.,  45050.,
      53695.,  54400.,  63000.,  63840.,  65205.,  66080.,  67410.,  68320.,
      69615.,  70560.,  59725.,  60550.,  49800.,  50500.,  39850.,  40420.,
      48800.,  49460.,  61090.,  61930.,  73392.,  74418.,  85694.,  86912.,
      88046.,  89306.,  90398.,  91700.,  92750.,  94094.,  79260.,  80430.,
      65830.,  66820.,  52472.,  53276.,  63070.,  63980.,  78645.,  79800.,
      94115.,  95522.,  109466., 111132., 111867., 113582., 114268., 116032.,
      116669., 118482., 99365.,  100940., 82250.,  83580.,  65338.,  66416.,
      77630.,  78820.,  96495.,  98000.,  115115., 116942., 133476., 135632.,
      135877., 138082., 138278., 140532., 140679., 142982., 119525., 121520.,
      98700.,  100380., 78218.,  79576.,  92190.,  93660.,  114345., 116200.,
      136115., 138362., 157486., 160132., 159887., 162582., 162288., 165032.,
      164689., 167482., 139685., 142100., 115150., 117180., 91098.,  92736.,
      71960.,  73340.,  88930.,  90670.,  105468., 107574., 121562., 124040.,
      123326., 125846., 125090., 127652., 126854., 129458., 107160., 109410.,
      87970.,  89860.,  69296.,  70820.,  53150.,  54400.,  65375.,  66950.,
      77155.,  79060.,  88480.,  90720.,  89705.,  91980.,  90930.,  93240.,
      92155.,  94500.,  77425.,  79450.,  63200.,  64900.,  49490.,  50860.,
      36320.,  37400.,  44380.,  45740.,  52016.,  53660.,  59220.,  61152.,
      60004.,  61964.,  60788.,  62776.,  61572.,  63588.,  51320.,  53060.,
      41540.,  43000.,  32240.,  33416.,  128400., 130120., 159100., 161260.,
      189224., 191828., 218764., 221816., 220724., 223804., 222684., 225792.,
      224644., 227780., 190640., 193340., 157260., 159520., 124512., 126328.,
      154150., 156400., 190725., 193550., 226495., 229900., 261450., 265440.,
      263655., 267680., 265860., 269920., 268065., 272160., 227125., 230650.,
      187050., 190000., 147850., 150220., 176240., 179060., 217690., 221230.,
      258072., 262338., 297374., 302372., 299726., 304766., 302078., 307160.,
      304430., 309554., 257460., 261870., 211630., 215320., 166952., 169916.,
      194110., 197540., 239295., 243600., 283115., 288302., 325556., 331632.,
      327957., 334082., 330358., 336532., 332759., 338982., 280805., 286160.,
      230300., 234780., 181258., 184856., 208670., 212380., 257145., 261800.,
      304115., 309722., 349566., 356132., 351967., 358582., 354368., 361032.,
      356769., 363482., 300965., 306740., 246750., 251580., 194138., 198016.,
      223230., 227220., 274995., 280000., 325115., 331142., 373576., 380632.,
      375977., 383082., 378378., 385532., 380779., 387982., 321125., 327320.,
      263200., 268380., 207018., 211176., 169160., 172700., 207730., 212170.,
      244788., 250134., 280322., 286580., 282086., 288386., 283850., 290192.,
      285614., 291998., 240000., 245490., 195970., 200560., 153536., 157220.,
      121550., 124600., 148625., 152450., 174355., 178960., 198730., 204120.,
      199955., 205380., 201180., 206640., 202405., 207900., 169225., 173950.,
      137450., 141400., 107090., 110260., 80960.,  83480.,  98380.,  101540.,
      114656., 118460., 129780., 134232., 130564., 135044., 131348., 135856.,
      132132., 136668., 109640., 113540., 88340.,  91600.,  68240.,  70856.,
      233520., 236680., 288700., 292660., 342584., 347348., 395164., 400736.,
      397124., 402724., 399084., 404712., 401044., 406700., 339680., 344540.,
      279660., 283720., 220992., 224248., 272950., 277000., 336975., 342050.,
      399295., 405400., 459900., 467040., 462105., 469280., 464310., 471520.,
      466515., 473760., 394525., 400750., 324300., 329500., 255850., 260020.,
      303680., 308660., 374290., 380530., 442752., 450258., 509054., 517832.,
      511406., 520226., 513758., 522620., 516110., 525014., 435660., 443310.,
      357430., 363820., 281432., 286556., 325150., 331100., 399945., 407400.,
      472115., 481082., 541646., 552132., 544047., 554582., 546448., 557032.,
      548849., 559482., 462245., 471380., 378350., 385980., 297178., 303296.,
      339710., 345940., 417795., 425600., 493115., 502502., 565656., 576632.,
      568057., 579082., 570458., 581532., 572859., 583982., 482405., 491960.,
      394800., 402780., 310058., 316456., 354270., 360780., 435645., 443800.,
      514115., 523922., 589666., 601132., 592067., 603582., 594468., 606032.,
      596869., 608482., 502565., 512540., 411250., 419580., 322938., 329616.,
      266360., 272060., 326530., 333670., 384108., 392694., 439082., 449120.,
      440846., 450926., 442610., 452732., 444374., 454538., 372840., 381570.,
      303970., 311260., 237776., 243620., 189950., 194800., 231875., 237950.,
      271555., 278860., 308980., 317520., 310205., 318780., 311430., 320040.,
      312655., 321300., 261025., 268450., 211700., 217900., 164690., 169660.,
      125600., 129560., 152380., 157340., 177296., 183260., 200340., 207312.,
      201124., 208124., 201908., 208936., 202692., 209748., 167960., 174020.,
      135140., 140200., 104240., 108296.};
  const std::array<int, 4> in_shape = {{3, 9, 10, 1}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x9x10x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      109466., 111132., 111867., 113582., 114268., 116032., 116669., 118482.,
      133476., 135632., 135877., 138082., 138278., 140532., 140679., 142982.,
      157486., 160132., 159887., 162582., 162288., 165032., 164689., 167482.,
      325556., 331632., 327957., 334082., 330358., 336532., 332759., 338982.,
      349566., 356132., 351967., 358582., 354368., 361032., 356769., 363482.,
      373576., 380632., 375977., 383082., 378378., 385532., 380779., 387982.,
      541646., 552132., 544047., 554582., 546448., 557032., 548849., 559482.,
      565656., 576632., 568057., 579082., 570458., 581532., 572859., 583982.,
      589666., 601132., 592067., 603582., 594468., 606032., 596869., 608482.};
  const std::array<int, 4> in_shape = {{3, 9, 10, 1}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x9x10x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      46280.,   46560.,   46840.,   47120.,   58640.,   59000.,   59360.,
      59720.,   71284.,   71728.,   72172.,   72616.,   84196.,   84728.,
      85260.,   85792.,   88088.,   88648.,   89208.,   89768.,   91980.,
      92568.,   93156.,   93744.,   95872.,   96488.,   97104.,   97720.,
      82660.,   83200.,   83740.,   84280.,   69260.,   69720.,   70180.,
      70640.,   55688.,   56064.,   56440.,   56816.,   70250.,   70700.,
      71150.,   71600.,   88375.,   88950.,   89525.,   90100.,   106685.,
      107390.,  108095.,  108800.,  125160.,  126000.,  126840.,  127680.,
      129535.,  130410.,  131285.,  132160.,  133910.,  134820.,  135730.,
      136640.,  138285.,  139230.,  140175.,  141120.,  118625.,  119450.,
      120275.,  121100.,  98900.,   99600.,   100300.,  101000.,  79130.,
      79700.,   80270.,   80840.,   96940.,   97600.,   98260.,   98920.,
      121340.,  122180.,  123020.,  123860.,  145758.,  146784.,  147810.,
      148836.,  170170.,  171388.,  172606.,  173824.,  174832.,  176092.,
      177352.,  178612.,  179494.,  180796.,  182098.,  183400.,  184156.,
      185500.,  186844.,  188188.,  157350.,  158520.,  159690.,  160860.,
      130670.,  131660.,  132650.,  133640.,  104140.,  104944.,  105748.,
      106552.,  125230.,  126140.,  127050.,  127960.,  156135.,  157290.,
      158445.,  159600.,  186823.,  188230.,  189637.,  191044.,  217266.,
      218932.,  220598.,  222264.,  222019.,  223734.,  225449.,  227164.,
      226772.,  228536.,  230300.,  232064.,  231525.,  233338.,  235151.,
      236964.,  197155.,  198730.,  200305.,  201880.,  163170.,  164500.,
      165830.,  167160.,  129598.,  130676.,  131754.,  132832.,  154070.,
      155260.,  156450.,  157640.,  191485.,  192990.,  194495.,  196000.,
      228403.,  230230.,  232057.,  233884.,  264796.,  266952.,  269108.,
      271264.,  269549.,  271754.,  273959.,  276164.,  274302.,  276556.,
      278810.,  281064.,  279055.,  281358.,  283661.,  285964.,  237055.,
      239050.,  241045.,  243040.,  195720.,  197400.,  199080.,  200760.,
      155078.,  156436.,  157794.,  159152.,  182910.,  184380.,  185850.,
      187320.,  226835.,  228690.,  230545.,  232400.,  269983.,  272230.,
      274477.,  276724.,  312326.,  314972.,  317618.,  320264.,  317079.,
      319774.,  322469.,  325164.,  321832.,  324576.,  327320.,  330064.,
      326585.,  329378.,  332171.,  334964.,  276955.,  279370.,  281785.,
      284200.,  228270.,  230300.,  232330.,  234360.,  180558.,  182196.,
      183834.,  185472.,  142540.,  143920.,  145300.,  146680.,  176120.,
      177860.,  179600.,  181340.,  208830.,  210936.,  213042.,  215148.,
      240646.,  243124.,  245602.,  248080.,  244132.,  246652.,  249172.,
      251692.,  247618.,  250180.,  252742.,  255304.,  251104.,  253708.,
      256312.,  258916.,  212070.,  214320.,  216570.,  218820.,  174050.,
      175940.,  177830.,  179720.,  137068.,  138592.,  140116.,  141640.,
      105050.,  106300.,  107550.,  108800.,  129175.,  130750.,  132325.,
      133900.,  152405.,  154310.,  156215.,  158120.,  174720.,  176960.,
      179200.,  181440.,  177135.,  179410.,  181685.,  183960.,  179550.,
      181860.,  184170.,  186480.,  181965.,  184310.,  186655.,  189000.,
      152825.,  154850.,  156875.,  158900.,  124700.,  126400.,  128100.,
      129800.,  97610.,   98980.,   100350.,  101720.,  71560.,   72640.,
      73720.,   74800.,   87400.,   88760.,   90120.,   91480.,   102388.,
      104032.,  105676.,  107320.,  116508.,  118440.,  120372.,  122304.,
      118048.,  120008.,  121968.,  123928.,  119588.,  121576.,  123564.,
      125552.,  121128.,  123144.,  125160.,  127176.,  100900.,  102640.,
      104380.,  106120.,  81620.,   83080.,   84540.,   86000.,   63304.,
      64480.,   65656.,   66832.,   255080.,  256800.,  258520.,  260240.,
      316040.,  318200.,  320360.,  322520.,  375844.,  378448.,  381052.,
      383656.,  434476.,  437528.,  440580.,  443632.,  438368.,  441448.,
      444528.,  447608.,  442260.,  445368.,  448476.,  451584.,  446152.,
      449288.,  452424.,  455560.,  378580.,  381280.,  383980.,  386680.,
      312260.,  314520.,  316780.,  319040.,  247208.,  249024.,  250840.,
      252656.,  306050.,  308300.,  310550.,  312800.,  378625.,  381450.,
      384275.,  387100.,  449585.,  452990.,  456395.,  459800.,  518910.,
      522900.,  526890.,  530880.,  523285.,  527310.,  531335.,  535360.,
      527660.,  531720.,  535780.,  539840.,  532035.,  536130.,  540225.,
      544320.,  450725.,  454250.,  457775.,  461300.,  371150.,  374100.,
      377050.,  380000.,  293330.,  295700.,  298070.,  300440.,  349660.,
      352480.,  355300.,  358120.,  431840.,  435380.,  438920.,  442460.,
      511878.,  516144.,  520410.,  524676.,  589750.,  594748.,  599746.,
      604744.,  594412.,  599452.,  604492.,  609532.,  599074.,  604156.,
      609238.,  614320.,  603736.,  608860.,  613984.,  619108.,  510510.,
      514920.,  519330.,  523740.,  419570.,  423260.,  426950.,  430640.,
      330940.,  333904.,  336868.,  339832.,  384790.,  388220.,  391650.,
      395080.,  474285.,  478590.,  482895.,  487200.,  561043.,  566230.,
      571417.,  576604.,  645036.,  651112.,  657188.,  663264.,  649789.,
      655914.,  662039.,  668164.,  654542.,  660716.,  666890.,  673064.,
      659295.,  665518.,  671741.,  677964.,  556255.,  561610.,  566965.,
      572320.,  456120.,  460600.,  465080.,  469560.,  358918.,  362516.,
      366114.,  369712.,  413630.,  417340.,  421050.,  424760.,  509635.,
      514290.,  518945.,  523600.,  602623.,  608230.,  613837.,  619444.,
      692566.,  699132.,  705698.,  712264.,  697319.,  703934.,  710549.,
      717164.,  702072.,  708736.,  715400.,  722064.,  706825.,  713538.,
      720251.,  726964.,  596155.,  601930.,  607705.,  613480.,  488670.,
      493500.,  498330.,  503160.,  384398.,  388276.,  392154.,  396032.,
      442470.,  446460.,  450450.,  454440.,  544985.,  549990.,  554995.,
      560000.,  644203.,  650230.,  656257.,  662284.,  740096.,  747152.,
      754208.,  761264.,  744849.,  751954.,  759059.,  766164.,  749602.,
      756756.,  763910.,  771064.,  754355.,  761558.,  768761.,  775964.,
      636055.,  642250.,  648445.,  654640.,  521220.,  526400.,  531580.,
      536760.,  409878.,  414036.,  418194.,  422352.,  334780.,  338320.,
      341860.,  345400.,  411020.,  415460.,  419900.,  424340.,  484230.,
      489576.,  494922.,  500268.,  554386.,  560644.,  566902.,  573160.,
      557872.,  564172.,  570472.,  576772.,  561358.,  567700.,  574042.,
      580384.,  564844.,  571228.,  577612.,  583996.,  474510.,  480000.,
      485490.,  490980.,  387350.,  391940.,  396530.,  401120.,  303388.,
      307072.,  310756.,  314440.,  240050.,  243100.,  246150.,  249200.,
      293425.,  297250.,  301075.,  304900.,  344105.,  348710.,  353315.,
      357920.,  392070.,  397460.,  402850.,  408240.,  394485.,  399910.,
      405335.,  410760.,  396900.,  402360.,  407820.,  413280.,  399315.,
      404810.,  410305.,  415800.,  333725.,  338450.,  343175.,  347900.,
      270950.,  274900.,  278850.,  282800.,  211010.,  214180.,  217350.,
      220520.,  159400.,  161920.,  164440.,  166960.,  193600.,  196760.,
      199920.,  203080.,  225508.,  229312.,  233116.,  236920.,  255108.,
      259560.,  264012.,  268464.,  256648.,  261128.,  265608.,  270088.,
      258188.,  262696.,  267204.,  271712.,  259728.,  264264.,  268800.,
      273336.,  215380.,  219280.,  223180.,  227080.,  173420.,  176680.,
      179940.,  183200.,  133864.,  136480.,  139096.,  141712.,  463880.,
      467040.,  470200.,  473360.,  573440.,  577400.,  581360.,  585320.,
      680404.,  685168.,  689932.,  694696.,  784756.,  790328.,  795900.,
      801472.,  788648.,  794248.,  799848.,  805448.,  792540.,  798168.,
      803796.,  809424.,  796432.,  802088.,  807744.,  813400.,  674500.,
      679360.,  684220.,  689080.,  555260.,  559320.,  563380.,  567440.,
      438728.,  441984.,  445240.,  448496.,  541850.,  545900.,  549950.,
      554000.,  668875.,  673950.,  679025.,  684100.,  792485.,  798590.,
      804695.,  810800.,  912660.,  919800.,  926940.,  934080.,  917035.,
      924210.,  931385.,  938560.,  921410.,  928620.,  935830.,  943040.,
      925785.,  933030.,  940275.,  947520.,  782825.,  789050.,  795275.,
      801500.,  643400.,  648600.,  653800.,  659000.,  507530.,  511700.,
      515870.,  520040.,  602380.,  607360.,  612340.,  617320.,  742340.,
      748580.,  754820.,  761060.,  877998.,  885504.,  893010.,  900516.,
      1009330., 1018108., 1026886., 1035664., 1013992., 1022812., 1031632.,
      1040452., 1018654., 1027516., 1036378., 1045240., 1023316., 1032220.,
      1041124., 1050028., 863670.,  871320.,  878970.,  886620.,  708470.,
      714860.,  721250.,  727640.,  557740.,  562864.,  567988.,  573112.,
      644350.,  650300.,  656250.,  662200.,  792435.,  799890.,  807345.,
      814800.,  935263.,  944230.,  953197.,  962164.,  1072806., 1083292.,
      1093778., 1104264., 1077559., 1088094., 1098629., 1109164., 1082312.,
      1092896., 1103480., 1114064., 1087065., 1097698., 1108331., 1118964.,
      915355.,  924490.,  933625.,  942760.,  749070.,  756700.,  764330.,
      771960.,  588238.,  594356.,  600474.,  606592.,  673190.,  679420.,
      685650.,  691880.,  827785.,  835590.,  843395.,  851200.,  976843.,
      986230.,  995617.,  1005004., 1120336., 1131312., 1142288., 1153264.,
      1125089., 1136114., 1147139., 1158164., 1129842., 1140916., 1151990.,
      1163064., 1134595., 1145718., 1156841., 1167964., 955255.,  964810.,
      974365.,  983920.,  781620.,  789600.,  797580.,  805560.,  613718.,
      620116.,  626514.,  632912.,  702030.,  708540.,  715050.,  721560.,
      863135.,  871290.,  879445.,  887600.,  1018423., 1028230., 1038037.,
      1047844., 1167866., 1179332., 1190798., 1202264., 1172619., 1184134.,
      1195649., 1207164., 1177372., 1188936., 1200500., 1212064., 1182125.,
      1193738., 1205351., 1216964., 995155.,  1005130., 1015105., 1025080.,
      814170.,  822500.,  830830.,  839160.,  639198.,  645876.,  652554.,
      659232.,  527020.,  532720.,  538420.,  544120.,  645920.,  653060.,
      660200.,  667340.,  759630.,  768216.,  776802.,  785388.,  868126.,
      878164.,  888202.,  898240.,  871612.,  881692.,  891772.,  901852.,
      875098.,  885220.,  895342.,  905464.,  878584.,  888748.,  898912.,
      909076.,  736950.,  745680.,  754410.,  763140.,  600650.,  607940.,
      615230.,  622520.,  469708.,  475552.,  481396.,  487240.,  375050.,
      379900.,  384750.,  389600.,  457675.,  463750.,  469825.,  475900.,
      535805.,  543110.,  550415.,  557720.,  609420.,  617960.,  626500.,
      635040.,  611835.,  620410.,  628985.,  637560.,  614250.,  622860.,
      631470.,  640080.,  616665.,  625310.,  633955.,  642600.,  514625.,
      522050.,  529475.,  536900.,  417200.,  423400.,  429600.,  435800.,
      324410.,  329380.,  334350.,  339320.,  247240.,  251200.,  255160.,
      259120.,  299800.,  304760.,  309720.,  314680.,  348628.,  354592.,
      360556.,  366520.,  393708.,  400680.,  407652.,  414624.,  395248.,
      402248.,  409248.,  416248.,  396788.,  403816.,  410844.,  417872.,
      398328.,  405384.,  412440.,  419496.,  329860.,  335920.,  341980.,
      348040.,  265220.,  270280.,  275340.,  280400.,  204424.,  208480.,
      212536.,  216592.};
  const std::array<int, 4> in_shape = {{3, 9, 10, 1}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x9x10x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      217266.,  218932.,  220598.,  222264.,  222019.,  223734.,  225449.,
      227164.,  226772.,  228536.,  230300.,  232064.,  231525.,  233338.,
      235151.,  236964.,  264796.,  266952.,  269108.,  271264.,  269549.,
      271754.,  273959.,  276164.,  274302.,  276556.,  278810.,  281064.,
      279055.,  281358.,  283661.,  285964.,  312326.,  314972.,  317618.,
      320264.,  317079.,  319774.,  322469.,  325164.,  321832.,  324576.,
      327320.,  330064.,  326585.,  329378.,  332171.,  334964.,  645036.,
      651112.,  657188.,  663264.,  649789.,  655914.,  662039.,  668164.,
      654542.,  660716.,  666890.,  673064.,  659295.,  665518.,  671741.,
      677964.,  692566.,  699132.,  705698.,  712264.,  697319.,  703934.,
      710549.,  717164.,  702072.,  708736.,  715400.,  722064.,  706825.,
      713538.,  720251.,  726964.,  740096.,  747152.,  754208.,  761264.,
      744849.,  751954.,  759059.,  766164.,  749602.,  756756.,  763910.,
      771064.,  754355.,  761558.,  768761.,  775964.,  1072806., 1083292.,
      1093778., 1104264., 1077559., 1088094., 1098629., 1109164., 1082312.,
      1092896., 1103480., 1114064., 1087065., 1097698., 1108331., 1118964.,
      1120336., 1131312., 1142288., 1153264., 1125089., 1136114., 1147139.,
      1158164., 1129842., 1140916., 1151990., 1163064., 1134595., 1145718.,
      1156841., 1167964., 1167866., 1179332., 1190798., 1202264., 1172619.,
      1184134., 1195649., 1207164., 1177372., 1188936., 1200500., 1212064.,
      1182125., 1193738., 1205351., 1216964.};
  const std::array<int, 4> in_shape = {{3, 9, 10, 1}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x9x10x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      92512.,   117280.,  142640.,  168560.,  176456.,  184352.,  192248.,
      165824.,  139000.,  111808.,  140980.,  177425.,  214270.,  251475.,
      260365.,  269255.,  278145.,  238690.,  199075.,  159340.,  195104.,
      244300.,  293568.,  342860.,  352352.,  361844.,  371336.,  317400.,
      263680.,  210224.,  252644.,  315105.,  377174.,  438795.,  448497.,
      458199.,  467901.,  398594.,  330015.,  262220.,  311444.,  387205.,
      462014.,  535815.,  545517.,  555219.,  564921.,  480074.,  396515.,
      314300.,  370244.,  459305.,  546854.,  632835.,  642537.,  652239.,
      661941.,  561554.,  463015.,  366380.,  289520.,  357880.,  424536.,
      489440.,  496580.,  503720.,  510860.,  431664.,  354460.,  279296.,
      214340.,  263725.,  311350.,  357175.,  362145.,  367115.,  372085.,
      312730.,  255375.,  200060.,  146944.,  179640.,  210656.,  239960.,
      243152.,  246344.,  249536.,  208112.,  168560.,  130912.,  515872.,
      639280.,  760400.,  879200.,  887096.,  894992.,  902888.,  766304.,
      632200.,  500608.,  619780.,  766925.,  910870.,  1051575., 1060465.,
      1069355., 1078245., 913690.,  752575.,  594940.,  709184.,  876100.,
      1038768., 1197140., 1206632., 1216124., 1225616., 1036680., 852280.,
      672464.,  781844.,  964005.,  1140734., 1311975., 1321677., 1331379.,
      1341081., 1131914., 928515.,  730940.,  840644.,  1036105., 1225574.,
      1408995., 1418697., 1428399., 1438101., 1213394., 995015.,  783020.,
      899444.,  1108205., 1310414., 1506015., 1515717., 1525419., 1535121.,
      1294874., 1061515., 835100.,  682640.,  838480.,  988296.,  1132040.,
      1139180., 1146320., 1153460., 969504.,  791860.,  620576.,  491540.,
      601225.,  705550.,  804475.,  809445.,  814415.,  819385.,  685330.,
      556875.,  434060.,  328384.,  399240.,  465536.,  527240.,  530432.,
      533624.,  536816.,  445712.,  359360.,  277792.,  939232.,  1161280.,
      1378160., 1589840., 1597736., 1605632., 1613528., 1366784., 1125400.,
      889408.,  1098580., 1356425., 1607470., 1851675., 1860565., 1869455.,
      1878345., 1588690., 1306075., 1030540., 1223264., 1507900., 1783968.,
      2051420., 2060912., 2070404., 2079896., 1755960., 1440880., 1134704.,
      1311044., 1612905., 1904294., 2185155., 2194857., 2204559., 2214261.,
      1865234., 1527015., 1199660., 1369844., 1685005., 1989134., 2282175.,
      2291877., 2301579., 2311281., 1946714., 1593515., 1251740., 1428644.,
      1757105., 2073974., 2379195., 2388897., 2398599., 2408301., 2028194.,
      1660015., 1303820., 1075760., 1319080., 1552056., 1774640., 1781780.,
      1788920., 1796060., 1507344., 1229260., 961856.,  768740.,  938725.,
      1099750., 1251775., 1256745., 1261715., 1266685., 1057930., 858375.,
      668060.,  509824.,  618840.,  720416.,  814520.,  817712.,  820904.,
      824096.,  683312.,  550160.,  424672.};
  const std::array<int, 4> in_shape = {{3, 9, 10, 2}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x9x10x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      438795.,  448497.,  458199.,  467901.,  535815.,  545517.,
      555219.,  564921.,  632835.,  642537.,  652239.,  661941.,
      1311975., 1321677., 1331379., 1341081., 1408995., 1418697.,
      1428399., 1438101., 1506015., 1515717., 1525419., 1535121.,
      2185155., 2194857., 2204559., 2214261., 2282175., 2291877.,
      2301579., 2311281., 2379195., 2388897., 2398599., 2408301.};
  const std::array<int, 4> in_shape = {{3, 9, 10, 2}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x9x10x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      183920.,  185024.,  233140.,  234560.,  283528.,  285280.,  335020.,
      337120.,  350700.,  352912.,  366380.,  368704.,  382060.,  384496.,
      329512.,  331648.,  276180.,  278000.,  222128.,  223616.,  280180.,
      281960.,  352575.,  354850.,  425750.,  428540.,  499625.,  502950.,
      517265.,  520730.,  534905.,  538510.,  552545.,  556290.,  474110.,
      477380.,  395375.,  398150.,  316420.,  318680.,  387592.,  390208.,
      485270.,  488600.,  583068.,  587136.,  680890.,  685720.,  699706.,
      704704.,  718522.,  723688.,  737338.,  742672.,  630156.,  634800.,
      523430.,  527360.,  417256.,  420448.,  501676.,  505288.,  625625.,
      630210.,  748762.,  754348.,  870975.,  877590.,  890183.,  896994.,
      909391.,  916398.,  928599.,  935802.,  790930.,  797188.,  654745.,
      660030.,  520156.,  524440.,  618156.,  622888.,  768425.,  774410.,
      916762.,  924028.,  1063055., 1071630., 1082263., 1091034., 1101471.,
      1110438., 1120679., 1129842., 952210.,  960148.,  786345.,  793030.,
      623196.,  628600.,  734636.,  740488.,  911225.,  918610.,  1084762.,
      1093708., 1255135., 1265670., 1274343., 1285074., 1293551., 1304478.,
      1312759., 1323882., 1113490., 1123108., 917945.,  926030.,  726236.,
      732760.,  573544.,  579040.,  708830.,  715760.,  840684.,  849072.,
      969010.,  978880.,  983122.,  993160.,  997234.,  1007440., 1011346.,
      1021720., 854364.,  863328.,  701390.,  708920.,  552520.,  558592.,
      423700.,  428680.,  521175.,  527450.,  615110.,  622700.,  705425.,
      714350.,  715225.,  724290.,  725025.,  734230.,  734825.,  744170.,
      617390.,  625460.,  503975.,  510750.,  394660.,  400120.,  289584.,
      293888.,  353860.,  359280.,  414760.,  421312.,  472220.,  479920.,
      478492.,  486304.,  484764.,  492688.,  491036.,  499072.,  409288.,
      416224.,  331300.,  337120.,  257136.,  261824.,  1024880., 1031744.,
      1269940., 1278560., 1510408., 1520800., 1746220., 1758400., 1761900.,
      1774192., 1777580., 1789984., 1793260., 1805776., 1521832., 1532608.,
      1255380., 1264400., 993968.,  1001216., 1230580., 1239560., 1522575.,
      1533850., 1808150., 1821740., 2087225., 2103150., 2104865., 2120930.,
      2122505., 2138710., 2140145., 2156490., 1813310., 1827380., 1493375.,
      1505150., 1180420., 1189880., 1407112., 1418368., 1738070., 1752200.,
      2060508., 2077536., 2374330., 2394280., 2393146., 2413264., 2411962.,
      2432248., 2430778., 2451232., 2055756., 2073360., 1689830., 1704560.,
      1333096., 1344928., 1549996., 1563688., 1910825., 1928010., 2260762.,
      2281468., 2599695., 2623950., 2618903., 2643354., 2638111., 2662758.,
      2657319., 2682162., 2242450., 2263828., 1839145., 1857030., 1447516.,
      1461880., 1666476., 1681288., 2053625., 2072210., 2428762., 2451148.,
      2791775., 2817990., 2810983., 2837394., 2830191., 2856798., 2849399.,
      2876202., 2403730., 2426788., 1970745., 1990030., 1550556., 1566040.,
      1782956., 1798888., 2196425., 2216410., 2596762., 2620828., 2983855.,
      3012030., 3003063., 3031434., 3022271., 3050838., 3041479., 3070242.,
      2565010., 2589748., 2102345., 2123030., 1653596., 1670200., 1351144.,
      1365280., 1659230., 1676960., 1955244., 1976592., 2239090., 2264080.,
      2253202., 2278360., 2267314., 2292640., 2281426., 2306920., 1917084.,
      1939008., 1565390., 1583720., 1226440., 1241152., 970900.,  983080.,
      1187175., 1202450., 1392710., 1411100., 1587425., 1608950., 1597225.,
      1618890., 1607025., 1628830., 1616825., 1638770., 1351790., 1370660.,
      1097975., 1113750., 855460.,  868120.,  646704.,  656768.,  785860.,
      798480.,  915880.,  931072.,  1036700., 1054480., 1042972., 1060864.,
      1049244., 1067248., 1055516., 1073632., 875848.,  891424.,  705700.,
      718720.,  545136.,  555584.,  1865840., 1878464., 2306740., 2322560.,
      2737288., 2756320., 3157420., 3179680., 3173100., 3195472., 3188780.,
      3211264., 3204460., 3227056., 2714152., 2733568., 2234580., 2250800.,
      1765808., 1778816., 2180980., 2197160., 2692575., 2712850., 3190550.,
      3214940., 3674825., 3703350., 3692465., 3721130., 3710105., 3738910.,
      3727745., 3756690., 3152510., 3177380., 2591375., 2612150., 2044420.,
      2061080., 2426632., 2446528., 2990870., 3015800., 3537948., 3567936.,
      4067770., 4102840., 4086586., 4121824., 4105402., 4140808., 4124218.,
      4159792., 3481356., 3511920., 2856230., 2881760., 2248936., 2269408.,
      2598316., 2622088., 3196025., 3225810., 3772762., 3808588., 4328415.,
      4370310., 4347623., 4389714., 4366831., 4409118., 4386039., 4428522.,
      3693970., 3730468., 3023545., 3054030., 2374876., 2399320., 2714796.,
      2739688., 3338825., 3370010., 3940762., 3978268., 4520495., 4564350.,
      4539703., 4583754., 4558911., 4603158., 4578119., 4622562., 3855250.,
      3893428., 3155145., 3187030., 2477916., 2503480., 2831276., 2857288.,
      3481625., 3514210., 4108762., 4147948., 4712575., 4758390., 4731783.,
      4777794., 4750991., 4797198., 4770199., 4816602., 4016530., 4056388.,
      3286745., 3320030., 2580956., 2607640., 2128744., 2151520., 2609630.,
      2638160., 3069804., 3104112., 3509170., 3549280., 3523282., 3563560.,
      3537394., 3577840., 3551506., 3592120., 2979804., 3014688., 2429390.,
      2458520., 1900360., 1923712., 1518100., 1537480., 1853175., 1877450.,
      2170310., 2199500., 2469425., 2503550., 2479225., 2513490., 2489025.,
      2523430., 2498825., 2533370., 2086190., 2115860., 1691975., 1716750.,
      1316260., 1336120., 1003824., 1019648., 1217860., 1237680., 1417000.,
      1440832., 1601180., 1629040., 1607452., 1635424., 1613724., 1641808.,
      1619996., 1648192., 1342408., 1366624., 1080100., 1100320., 833136.,
      849344.};
  const std::array<int, 4> in_shape = {{3, 9, 10, 2}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x9x10x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      870975.,  877590.,  890183.,  896994.,  909391.,  916398.,  928599.,
      935802.,  1063055., 1071630., 1082263., 1091034., 1101471., 1110438.,
      1120679., 1129842., 1255135., 1265670., 1274343., 1285074., 1293551.,
      1304478., 1312759., 1323882., 2599695., 2623950., 2618903., 2643354.,
      2638111., 2662758., 2657319., 2682162., 2791775., 2817990., 2810983.,
      2837394., 2830191., 2856798., 2849399., 2876202., 2983855., 3012030.,
      3003063., 3031434., 3022271., 3050838., 3041479., 3070242., 4328415.,
      4370310., 4347623., 4389714., 4366831., 4409118., 4386039., 4428522.,
      4520495., 4564350., 4539703., 4583754., 4558911., 4603158., 4578119.,
      4622562., 4712575., 4758390., 4731783., 4777794., 4750991., 4797198.,
      4770199., 4816602.};
  const std::array<int, 4> in_shape = {{3, 9, 10, 2}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x9x10x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      366736.,  367840.,  368944.,  370048.,  464860.,  466280.,  467700.,
      469120.,  565304.,  567056.,  568808.,  570560.,  667940.,  670040.,
      672140.,  674240.,  699188.,  701400.,  703612.,  705824.,  730436.,
      732760.,  735084.,  737408.,  761684.,  764120.,  766556.,  768992.,
      656888.,  659024.,  661160.,  663296.,  550540.,  552360.,  554180.,
      556000.,  442768.,  444256.,  445744.,  447232.,  558580.,  560360.,
      562140.,  563920.,  702875.,  705150.,  707425.,  709700.,  848710.,
      851500.,  854290.,  857080.,  995925.,  999250.,  1002575., 1005900.,
      1031065., 1034530., 1037995., 1041460., 1066205., 1069810., 1073415.,
      1077020., 1101345., 1105090., 1108835., 1112580., 944950.,  948220.,
      951490.,  954760.,  787975.,  790750.,  793525.,  796300.,  630580.,
      632840.,  635100.,  637360.,  772568.,  775184.,  777800.,  780416.,
      967210.,  970540.,  973870.,  977200.,  1162068., 1166136., 1170204.,
      1174272., 1356950., 1361780., 1366610., 1371440., 1394414., 1399412.,
      1404410., 1409408., 1431878., 1437044., 1442210., 1447376., 1469342.,
      1474676., 1480010., 1485344., 1255668., 1260312., 1264956., 1269600.,
      1042930., 1046860., 1050790., 1054720., 831320.,  834512.,  837704.,
      840896.,  999740.,  1003352., 1006964., 1010576., 1246665., 1251250.,
      1255835., 1260420., 1491938., 1497524., 1503110., 1508696., 1735335.,
      1741950., 1748565., 1755180., 1773555., 1780366., 1787177., 1793988.,
      1811775., 1818782., 1825789., 1832796., 1849995., 1857198., 1864401.,
      1871604., 1575602., 1581860., 1588118., 1594376., 1304205., 1309490.,
      1314775., 1320060., 1036028., 1040312., 1044596., 1048880., 1231580.,
      1236312., 1241044., 1245776., 1530865., 1536850., 1542835., 1548820.,
      1826258., 1833524., 1840790., 1848056., 2117535., 2126110., 2134685.,
      2143260., 2155755., 2164526., 2173297., 2182068., 2193975., 2202942.,
      2211909., 2220876., 2232195., 2241358., 2250521., 2259684., 1896482.,
      1904420., 1912358., 1920296., 1566005., 1572690., 1579375., 1586060.,
      1240988., 1246392., 1251796., 1257200., 1463420., 1469272., 1475124.,
      1480976., 1815065., 1822450., 1829835., 1837220., 2160578., 2169524.,
      2178470., 2187416., 2499735., 2510270., 2520805., 2531340., 2537955.,
      2548686., 2559417., 2570148., 2576175., 2587102., 2598029., 2608956.,
      2614395., 2625518., 2636641., 2647764., 2217362., 2226980., 2236598.,
      2246216., 1827805., 1835890., 1843975., 1852060., 1445948., 1452472.,
      1458996., 1465520., 1141592., 1147088., 1152584., 1158080., 1410730.,
      1417660., 1424590., 1431520., 1672980., 1681368., 1689756., 1698144.,
      1928150., 1938020., 1947890., 1957760., 1956206., 1966244., 1976282.,
      1986320., 1984262., 1994468., 2004674., 2014880., 2012318., 2022692.,
      2033066., 2043440., 1699764., 1708728., 1717692., 1726656., 1395250.,
      1402780., 1410310., 1417840., 1098968., 1105040., 1111112., 1117184.,
      842420.,  847400.,  852380.,  857360.,  1036075., 1042350., 1048625.,
      1054900., 1222630., 1230220., 1237810., 1245400., 1401925., 1410850.,
      1419775., 1428700., 1421385., 1430450., 1439515., 1448580., 1440845.,
      1450050., 1459255., 1468460., 1460305., 1469650., 1478995., 1488340.,
      1226710., 1234780., 1242850., 1250920., 1001175., 1007950., 1014725.,
      1021500., 783860.,  789320.,  794780.,  800240.,  574864.,  579168.,
      583472.,  587776.,  702300.,  707720.,  713140.,  718560.,  822968.,
      829520.,  836072.,  842624.,  936740.,  944440.,  952140.,  959840.,
      949172.,  956984.,  964796.,  972608.,  961604.,  969528.,  977452.,
      985376.,  974036.,  982072.,  990108.,  998144.,  811640.,  818576.,
      825512.,  832448.,  656780.,  662600.,  668420.,  674240.,  509584.,
      514272.,  518960.,  523648.,  2042896., 2049760., 2056624., 2063488.,
      2531260., 2539880., 2548500., 2557120., 3010424., 3020816., 3031208.,
      3041600., 3480260., 3492440., 3504620., 3516800., 3511508., 3523800.,
      3536092., 3548384., 3542756., 3555160., 3567564., 3579968., 3574004.,
      3586520., 3599036., 3611552., 3032888., 3043664., 3054440., 3065216.,
      2501740., 2510760., 2519780., 2528800., 1980688., 1987936., 1995184.,
      2002432., 2452180., 2461160., 2470140., 2479120., 3033875., 3045150.,
      3056425., 3067700., 3602710., 3616300., 3629890., 3643480., 4158525.,
      4174450., 4190375., 4206300., 4193665., 4209730., 4225795., 4241860.,
      4228805., 4245010., 4261215., 4277420., 4263945., 4280290., 4296635.,
      4312980., 3612550., 3626620., 3640690., 3654760., 2974975., 2986750.,
      2998525., 3010300., 2351380., 2360840., 2370300., 2379760., 2802968.,
      2814224., 2825480., 2836736., 3462010., 3476140., 3490270., 3504400.,
      4103988., 4121016., 4138044., 4155072., 4728710., 4748660., 4768610.,
      4788560., 4766174., 4786292., 4806410., 4826528., 4803638., 4823924.,
      4844210., 4864496., 4841102., 4861556., 4882010., 4902464., 4093908.,
      4111512., 4129116., 4146720., 3364930., 3379660., 3394390., 3409120.,
      2654360., 2666192., 2678024., 2689856., 3086300., 3099992., 3113684.,
      3127376., 3804465., 3821650., 3838835., 3856020., 4500818., 4521524.,
      4542230., 4562936., 5175135., 5199390., 5223645., 5247900., 5213355.,
      5237806., 5262257., 5286708., 5251575., 5276222., 5300869., 5325516.,
      5289795., 5314638., 5339481., 5364324., 4463522., 4484900., 4506278.,
      4527656., 3660405., 3678290., 3696175., 3714060., 2880668., 2895032.,
      2909396., 2923760., 3318140., 3332952., 3347764., 3362576., 4088665.,
      4107250., 4125835., 4144420., 4835138., 4857524., 4879910., 4902296.,
      5557335., 5583550., 5609765., 5635980., 5595555., 5621966., 5648377.,
      5674788., 5633775., 5660382., 5686989., 5713596., 5671995., 5698798.,
      5725601., 5752404., 4784402., 4807460., 4830518., 4853576., 3922205.,
      3941490., 3960775., 3980060., 3085628., 3101112., 3116596., 3132080.,
      3549980., 3565912., 3581844., 3597776., 4372865., 4392850., 4412835.,
      4432820., 5169458., 5193524., 5217590., 5241656., 5939535., 5967710.,
      5995885., 6024060., 5977755., 6006126., 6034497., 6062868., 6015975.,
      6044542., 6073109., 6101676., 6054195., 6082958., 6111721., 6140484.,
      5105282., 5130020., 5154758., 5179496., 4184005., 4204690., 4225375.,
      4246060., 3290588., 3307192., 3323796., 3340400., 2688152., 2702288.,
      2716424., 2730560., 3300730., 3318460., 3336190., 3353920., 3889140.,
      3910488., 3931836., 3953184., 4453190., 4478180., 4503170., 4528160.,
      4481246., 4506404., 4531562., 4556720., 4509302., 4534628., 4559954.,
      4585280., 4537358., 4562852., 4588346., 4613840., 3812244., 3834168.,
      3856092., 3878016., 3112450., 3130780., 3149110., 3167440., 2438168.,
      2452880., 2467592., 2482304., 1929620., 1941800., 1953980., 1966160.,
      2359075., 2374350., 2389625., 2404900., 2767030., 2785420., 2803810.,
      2822200., 3153325., 3174850., 3196375., 3217900., 3172785., 3194450.,
      3216115., 3237780., 3192245., 3214050., 3235855., 3257660., 3211705.,
      3233650., 3255595., 3277540., 2684710., 2703580., 2722450., 2741320.,
      2180175., 2195950., 2211725., 2227500., 1698260., 1710920., 1723580.,
      1736240., 1283344., 1293408., 1303472., 1313536., 1559100., 1571720.,
      1584340., 1596960., 1816568., 1831760., 1846952., 1862144., 2055620.,
      2073400., 2091180., 2108960., 2068052., 2085944., 2103836., 2121728.,
      2080484., 2098488., 2116492., 2134496., 2092916., 2111032., 2129148.,
      2147264., 1736120., 1751696., 1767272., 1782848., 1398380., 1411400.,
      1424420., 1437440., 1079824., 1090272., 1100720., 1111168., 3719056.,
      3731680., 3744304., 3756928., 4597660., 4613480., 4629300., 4645120.,
      5455544., 5474576., 5493608., 5512640., 6292580., 6314840., 6337100.,
      6359360., 6323828., 6346200., 6368572., 6390944., 6355076., 6377560.,
      6400044., 6422528., 6386324., 6408920., 6431516., 6454112., 5408888.,
      5428304., 5447720., 5467136., 4452940., 4469160., 4485380., 4501600.,
      3518608., 3531616., 3544624., 3557632., 4345780., 4361960., 4378140.,
      4394320., 5364875., 5385150., 5405425., 5425700., 6356710., 6381100.,
      6405490., 6429880., 7321125., 7349650., 7378175., 7406700., 7356265.,
      7384930., 7413595., 7442260., 7391405., 7420210., 7449015., 7477820.,
      7426545., 7455490., 7484435., 7513380., 6280150., 6305020., 6329890.,
      6354760., 5161975., 5182750., 5203525., 5224300., 4072180., 4088840.,
      4105500., 4122160., 4833368., 4853264., 4873160., 4893056., 5956810.,
      5981740., 6006670., 6031600., 7045908., 7075896., 7105884., 7135872.,
      8100470., 8135540., 8170610., 8205680., 8137934., 8173172., 8208410.,
      8243648., 8175398., 8210804., 8246210., 8281616., 8212862., 8248436.,
      8284010., 8319584., 6932148., 6962712., 6993276., 7023840., 5686930.,
      5712460., 5737990., 5763520., 4477400., 4497872., 4518344., 4538816.,
      5172860., 5196632., 5220404., 5244176., 6362265., 6392050., 6421835.,
      6451620., 7509698., 7545524., 7581350., 7617176., 8614935., 8656830.,
      8698725., 8740620., 8653155., 8695246., 8737337., 8779428., 8691375.,
      8733662., 8775949., 8818236., 8729595., 8772078., 8814561., 8857044.,
      7351442., 7387940., 7424438., 7460936., 6016605., 6047090., 6077575.,
      6108060., 4725308., 4749752., 4774196., 4798640., 5404700., 5429592.,
      5454484., 5479376., 6646465., 6677650., 6708835., 6740020., 7844018.,
      7881524., 7919030., 7956536., 8997135., 9040990., 9084845., 9128700.,
      9035355., 9079406., 9123457., 9167508., 9073575., 9117822., 9162069.,
      9206316., 9111795., 9156238., 9200681., 9245124., 7672322., 7710500.,
      7748678., 7786856., 6278405., 6310290., 6342175., 6374060., 4930268.,
      4955832., 4981396., 5006960., 5636540., 5662552., 5688564., 5714576.,
      6930665., 6963250., 6995835., 7028420., 8178338., 8217524., 8256710.,
      8295896., 9379335., 9425150., 9470965., 9516780., 9417555., 9463566.,
      9509577., 9555588., 9455775., 9501982., 9548189., 9594396., 9493995.,
      9540398., 9586801., 9633204., 7993202., 8033060., 8072918., 8112776.,
      6540205., 6573490., 6606775., 6640060., 5135228., 5161912., 5188596.,
      5215280., 4234712., 4257488., 4280264., 4303040., 5190730., 5219260.,
      5247790., 5276320., 6105300., 6139608., 6173916., 6208224., 6978230.,
      7018340., 7058450., 7098560., 7006286., 7046564., 7086842., 7127120.,
      7034342., 7074788., 7115234., 7155680., 7062398., 7103012., 7143626.,
      7184240., 5924724., 5959608., 5994492., 6029376., 4829650., 4858780.,
      4887910., 4917040., 3777368., 3800720., 3824072., 3847424., 3016820.,
      3036200., 3055580., 3074960., 3682075., 3706350., 3730625., 3754900.,
      4311430., 4340620., 4369810., 4399000., 4904725., 4938850., 4972975.,
      5007100., 4924185., 4958450., 4992715., 5026980., 4943645., 4978050.,
      5012455., 5046860., 4963105., 4997650., 5032195., 5066740., 4142710.,
      4172380., 4202050., 4231720., 3359175., 3383950., 3408725., 3433500.,
      2612660., 2632520., 2652380., 2672240., 1991824., 2007648., 2023472.,
      2039296., 2415900., 2435720., 2455540., 2475360., 2810168., 2834000.,
      2857832., 2881664., 3174500., 3202360., 3230220., 3258080., 3186932.,
      3214904., 3242876., 3270848., 3199364., 3227448., 3255532., 3283616.,
      3211796., 3239992., 3268188., 3296384., 2660600., 2684816., 2709032.,
      2733248., 2139980., 2160200., 2180420., 2200640., 1650064., 1666272.,
      1682480., 1698688.};
  const std::array<int, 4> in_shape = {{3, 9, 10, 2}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x9x10x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1735335., 1741950., 1748565., 1755180., 1773555., 1780366., 1787177.,
      1793988., 1811775., 1818782., 1825789., 1832796., 1849995., 1857198.,
      1864401., 1871604., 2117535., 2126110., 2134685., 2143260., 2155755.,
      2164526., 2173297., 2182068., 2193975., 2202942., 2211909., 2220876.,
      2232195., 2241358., 2250521., 2259684., 2499735., 2510270., 2520805.,
      2531340., 2537955., 2548686., 2559417., 2570148., 2576175., 2587102.,
      2598029., 2608956., 2614395., 2625518., 2636641., 2647764., 5175135.,
      5199390., 5223645., 5247900., 5213355., 5237806., 5262257., 5286708.,
      5251575., 5276222., 5300869., 5325516., 5289795., 5314638., 5339481.,
      5364324., 5557335., 5583550., 5609765., 5635980., 5595555., 5621966.,
      5648377., 5674788., 5633775., 5660382., 5686989., 5713596., 5671995.,
      5698798., 5725601., 5752404., 5939535., 5967710., 5995885., 6024060.,
      5977755., 6006126., 6034497., 6062868., 6015975., 6044542., 6073109.,
      6101676., 6054195., 6082958., 6111721., 6140484., 8614935., 8656830.,
      8698725., 8740620., 8653155., 8695246., 8737337., 8779428., 8691375.,
      8733662., 8775949., 8818236., 8729595., 8772078., 8814561., 8857044.,
      8997135., 9040990., 9084845., 9128700., 9035355., 9079406., 9123457.,
      9167508., 9073575., 9117822., 9162069., 9206316., 9111795., 9156238.,
      9200681., 9245124., 9379335., 9425150., 9470965., 9516780., 9417555.,
      9463566., 9509577., 9555588., 9455775., 9501982., 9548189., 9594396.,
      9493995., 9540398., 9586801., 9633204.};
  const std::array<int, 4> in_shape = {{3, 9, 10, 2}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x9x10x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      733216.,  929640.,  1130800., 1336440., 1399384., 1462328., 1525272.,
      1315696., 1102920., 887200.,  1119000., 1408350., 1700900., 1996330.,
      2067170., 2138010., 2208850., 1895540., 1580950., 1265400., 1549936.,
      1940780., 2332200., 2723812., 2799412., 2875012., 2950612., 2521992.,
      2095100., 1670320., 2008104., 2504530., 2997820., 3487526., 3564750.,
      3641974., 3719198., 3168172., 2622970., 2084040., 2476264., 3078530.,
      3673180., 4259766., 4336990., 4414214., 4491438., 3816652., 3152170.,
      2498440., 2944424., 3652530., 4348540., 5032006., 5109230., 5186454.,
      5263678., 4465132., 3681370., 2912840., 2300848., 2843900., 3373320.,
      3888724., 3945508., 4002292., 4059076., 3429480., 2815820., 2218480.,
      1701720., 2093550., 2471300., 2834650., 2874130., 2913610., 2953090.,
      2481620., 2026150., 1587000., 1164960., 1423880., 1669360., 1901144.,
      1926456., 1951768., 1977080., 1648432., 1334760., 1036320., 4108576.,
      5091240., 6055600., 7001400., 7064344., 6728952., 6401752., 5330160.,
      4278408., 3246752., 3390808., 4196590., 4984964., 5755610., 5826450.,
      5556298., 5294338., 4398548., 3522086., 2665272., 2786288., 3440780.,
      4077672., 4696580., 4772180., 4564132., 4364276., 3615688., 2887004.,
      2178608., 2277096., 2801410., 3306844., 3792950., 3870174., 3721094.,
      3580206., 2954700., 2350762., 1768840., 1889192., 2325810., 2747260.,
      3153094., 3230318., 3138582., 3055038., 2532076., 2026970., 1540168.,
      1730664., 2136930., 2531740., 2914646., 2991870., 2957478., 2931278.,
      2453516., 1989898., 1540872., 1148208., 1419100., 1682760., 1938804.,
      1995588., 1998100., 2008804., 1693352., 1387436., 1091440., 771480.,
      961150.,  1148900., 1334410., 1373890., 1413370., 1452850., 1232180.,
      1015350., 802680.,  556960.,  688200.,  815728.,  939288.,  964600.,
      989912.,  1015224., 853168.,  696360.,  545056.,  2683424., 3334120.,
      3976240., 4609528., 4672472., 4735416., 4798360., 4081264., 3374280.,
      2677664., 3323800., 4122750., 4908260., 5680010., 5750850., 5821690.,
      5892530., 5003060., 4128950., 3270520., 3916144., 4848620., 5761704.,
      6655012., 6730612., 6806212., 6881812., 5831688., 4803260., 3796912.,
      4442536., 5489330., 6509692., 7503174., 7580398., 7657622., 7734846.,
      6540268., 5374810., 4238920., 4910696., 6063330., 7185052., 7877078.,
      7564158., 7259430., 6962894., 5677324., 4425354., 3207432., 3834664.,
      4727570., 5593276., 6090342., 5834766., 5587382., 5348190., 4337196.,
      3356090., 2405320., 2793136., 3429820., 4041096., 4342932., 4124260.,
      3913780., 3711492., 2973928., 2264076., 1582320., 1889240., 2306830.,
      2701892., 2847802., 2669170., 2498730., 2336482., 1838228., 1364422.,
      915384.,  1140896., 1381000., 1602544., 1636312., 1500856., 1373592.,
      1254520., 956976.,  679528.,  422432.};
  const std::array<int, 4> in_shape = {{3, 9, 10, 4}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x9x10x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3487526., 3564750., 3641974., 3719198., 4259766., 4336990.,
      4414214., 4491438., 5032006., 5109230., 5186454., 5263678.,
      3792950., 3870174., 3721094., 3580206., 3153094., 3230318.,
      3138582., 3055038., 2914646., 2991870., 2957478., 2931278.,
      7503174., 7580398., 7657622., 7734846., 7877078., 7564158.,
      7259430., 6962894., 6090342., 5834766., 5587382., 5348190.};
  const std::array<int, 4> in_shape = {{3, 9, 10, 4}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x9x10x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1462048.,  1466432.,  1853640.,  1859280.,  2254640.,  2261600.,
      2664536.,  2672880.,  2789976.,  2798768.,  2915416.,  2924656.,
      3040856.,  3050544.,  2622896.,  2631392.,  2198600.,  2205840.,
      1768480.,  1774400.,  2230920.,  2238000.,  2807650.,  2816700.,
      3390700.,  3401800.,  3979430.,  3992660.,  4120550.,  4134340.,
      4261670.,  4276020.,  4402790.,  4417700.,  3778060.,  3791080.,
      3150850.,  3161900.,  2521800.,  2530800.,  3089456.,  3099872.,
      3868300.,  3881560.,  4648200.,  4664400.,  5428388.,  5447624.,
      5578916.,  5598824.,  5729444.,  5750024.,  5879972.,  5901224.,
      5025480.,  5043984.,  4174540.,  4190200.,  3327920.,  3340640.,
      4001816.,  4016208.,  4990790.,  5009060.,  5973380.,  5995640.,
      6948690.,  6975052.,  7102354.,  7129500.,  7256018.,  7283948.,
      7409682.,  7438396.,  6311396.,  6336344.,  5224870.,  5245940.,
      4151000.,  4168080.,  4933656.,  4952528.,  6133190.,  6157060.,
      7317380.,  7346360.,  8485330.,  8519532.,  8638994.,  8673980.,
      8792658.,  8828428.,  8946322.,  8982876.,  7601636.,  7633304.,
      6277670.,  6304340.,  4975320.,  4996880.,  5865496.,  5888848.,
      7275590.,  7305060.,  8661380.,  8697080.,  10021970., 10064012.,
      10175634., 10218460., 10329298., 10372908., 10482962., 10527356.,
      8891876.,  8930264.,  7330470.,  7362740.,  5799640.,  5825680.,
      4579760.,  4601696.,  5660140.,  5687800.,  6713160.,  6746640.,
      7738052.,  7777448.,  7850948.,  7891016.,  7963844.,  8004584.,
      8076740.,  8118152.,  6823176.,  6858960.,  5601580.,  5631640.,
      4412720.,  4436960.,  3383560.,  3403440.,  4162050.,  4187100.,
      4912300.,  4942600.,  5633670.,  5669300.,  5712070.,  5748260.,
      5790470.,  5827220.,  5868870.,  5906180.,  4931020.,  4963240.,
      4025250.,  4052300.,  3152200.,  3174000.,  2312736.,  2329920.,
      2826120.,  2847760.,  3312560.,  3338720.,  3771544.,  3802288.,
      3821720.,  3852912.,  3871896.,  3903536.,  3922072.,  3954160.,
      3269168.,  3296864.,  2646280.,  2669520.,  2053920.,  2072640.,
      8189728.,  8217152.,  10148040., 10182480., 12069680., 12111200.,
      13954136., 14002800., 14079576., 14128688., 13410392., 13457904.,
      12757592., 12803504., 10621360., 10660320., 8524872.,  8556816.,
      6468640.,  6493504.,  6753928.,  6781616.,  8358370.,  8393180.,
      9927916.,  9969928.,  11461926., 11511220., 11603046., 11652900.,
      11064230., 11112596., 10541798., 10588676., 8757260.,  8797096.,
      7011458.,  7044172.,  5305032.,  5330544.,  5543984.,  5572576.,
      6845580.,  6881560.,  8111880.,  8155344.,  9342116.,  9393160.,
      9492644.,  9544360.,  9077924.,  9128264.,  8679588.,  8728552.,
      7189704.,  7231376.,  5739724.,  5774008.,  4330416.,  4357216.,
      4524056.,  4554192.,  5564870.,  5602820.,  6567812.,  6613688.,
      7531986.,  7585900.,  7685650.,  7740348.,  7388754.,  7442188.,
      7108242.,  7160412.,  5864932.,  5909400.,  4664870.,  4701524.,
      3508952.,  3537680.,  3751960.,  3778384.,  4618310.,  4651620.,
      5454212.,  5494520.,  6258770.,  6306188.,  6412434.,  6460636.,
      6230226.,  6277164.,  6064402.,  6110076.,  5025252.,  5064152.,
      4021926.,  4053940.,  3055320.,  3080336.,  3438616.,  3461328.,
      4245190.,  4273860.,  5028740.,  5063480.,  5788370.,  5829292.,
      5942034.,  5983740.,  5874514.,  5914956.,  5823378.,  5862556.,
      4873700.,  4907032.,  3952422.,  3979796.,  3060440.,  3081744.,
      2280880.,  2296416.,  2818540.,  2838200.,  3341640.,  3365520.,
      3849412.,  3877608.,  3962308.,  3991176.,  3968708.,  3996200.,
      3991492.,  4017608.,  3364616.,  3386704.,  2756908.,  2774872.,
      2169136.,  2182880.,  1535240.,  1542960.,  1912450.,  1922300.,
      2285740.,  2297800.,  2654470.,  2668820.,  2732870.,  2747780.,
      2811270.,  2826740.,  2889670.,  2905700.,  2450380.,  2464360.,
      2018850.,  2030700.,  1595720.,  1605360.,  1106464.,  1113920.,
      1366920.,  1376400.,  1619888.,  1631456.,  1864856.,  1878576.,
      1915032.,  1929200.,  1965208.,  1979824.,  2015384.,  2030448.,
      1693232.,  1706336.,  1381640.,  1392720.,  1081120.,  1090112.,
      5349152.,  5366848.,  6645960.,  6668240.,  7925552.,  7952480.,
      9187416.,  9219056.,  9312856.,  9344944.,  9438296.,  9470832.,
      9563736.,  9596720.,  8134064.,  8162528.,  6724680.,  6748560.,
      5336096.,  5355328.,  6623880.,  6647600.,  8215650.,  8245500.,
      9780460.,  9816520.,  11317670., 11360020., 11458790., 11501700.,
      11599910., 11643380., 11741030., 11785060., 9968140.,  10006120.,
      8226050.,  8257900.,  6515400.,  6541040.,  7801904.,  7832288.,
      9659020.,  9697240.,  11477256., 11523408., 13255844., 13310024.,
      13406372., 13461224., 13556900., 13612424., 13707428., 13763624.,
      11614920., 11663376., 9565900.,  9606520.,  7561136.,  7593824.,
      8847384.,  8885072.,  10931270., 10978660., 12962180., 13019384.,
      14939218., 15006348., 15092882., 15160796., 15246546., 15315244.,
      15400210., 15469692., 13020644., 13080536., 10699430., 10749620.,
      8437464.,  8477840.,  9779224.,  9821392.,  12073670., 12126660.,
      14306180., 14370104., 15681234., 15754156., 15056658., 15128316.,
      14448466., 14518860., 13856658., 13925788., 11296228., 11354648.,
      8803110.,  8850708.,  6378200.,  6414864.,  7630872.,  7669328.,
      9406790.,  9455140.,  11128196., 11186552., 12114258., 12180684.,
      11604370., 11669532., 11110866., 11174764., 10633746., 10696380.,
      8621540.,  8674392.,  6669222.,  6712180.,  4777688.,  4810640.,
      5552560.,  5586272.,  6817260.,  6859640.,  8031048.,  8082192.,
      8627908.,  8685864.,  8191940.,  8248520.,  7772356.,  7827560.,
      7369156.,  7422984.,  5902600.,  5947856.,  4491564.,  4528152.,
      3136816.,  3164640.,  3750152.,  3778480.,  4578050.,  4613660.,
      5360812.,  5403784.,  5647238.,  5695604.,  5291462.,  5338340.,
      4952070.,  4997460.,  4629062.,  4672964.,  3639756.,  3676456.,
      2699426.,  2728844.,  1808712.,  1830768.,  2259488.,  2281792.,
      2733960.,  2762000.,  3171248.,  3205088.,  3234968.,  3272624.,
      2965656.,  3001712.,  2712728.,  2747184.,  2476184.,  2509040.,
      1886768.,  1913952.,  1337608.,  1359056.,  829216.,   844864.};
  const std::array<int, 4> in_shape = {{3, 9, 10, 4}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x9x10x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6948690.,  6975052.,  7102354.,  7129500.,  7256018.,  7283948.,
      7409682.,  7438396.,  8485330.,  8519532.,  8638994.,  8673980.,
      8792658.,  8828428.,  8946322.,  8982876.,  10021970., 10064012.,
      10175634., 10218460., 10329298., 10372908., 10482962., 10527356.,
      7531986.,  7585900.,  7685650.,  7740348.,  7388754.,  7442188.,
      7108242.,  7160412.,  6258770.,  6306188.,  6412434.,  6460636.,
      6230226.,  6277164.,  6064402.,  6110076.,  5788370.,  5829292.,
      5942034.,  5983740.,  5874514.,  5914956.,  5823378.,  5862556.,
      14939218., 15006348., 15092882., 15160796., 15246546., 15315244.,
      15400210., 15469692., 15681234., 15754156., 15056658., 15128316.,
      14448466., 14518860., 13856658., 13925788., 12114258., 12180684.,
      11604370., 11669532., 11110866., 11174764., 10633746., 10696380.};
  const std::array<int, 4> in_shape = {{3, 9, 10, 4}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x9x10x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      831776.,   836160.,   840544.,   844928.,   1103752.,  1109392.,
      1115032.,  1120672.,  1378096.,  1385056.,  1392016.,  1398976.,
      1653784.,  1662128.,  1670472.,  1678816.,  1764952.,  1773744.,
      1782536.,  1791328.,  1876120.,  1885360.,  1894600.,  1903840.,
      1987288.,  1996976.,  2006664.,  2016352.,  1765936.,  1774432.,
      1782928.,  1791424.,  1556552.,  1563792.,  1571032.,  1578272.,
      1360160.,  1366080.,  1372000.,  1377920.,  1465704.,  1472784.,
      1479864.,  1486944.,  1943402.,  1952452.,  1961502.,  1970552.,
      2417276.,  2428376.,  2439476.,  2450576.,  2886046.,  2899276.,
      2912506.,  2925736.,  3028462.,  3042252.,  3056042.,  3069832.,
      3170878.,  3185228.,  3199578.,  3213928.,  3313294.,  3328204.,
      3343114.,  3358024.,  2924860.,  2937880.,  2950900.,  2963920.,
      2556122.,  2567172.,  2578222.,  2589272.,  2208360.,  2217360.,
      2226360.,  2235360.,  2278320.,  2288736.,  2299152.,  2309568.,
      2995532.,  3008792.,  3022052.,  3035312.,  3698376.,  3714576.,
      3730776.,  3746976.,  4385316.,  4404552.,  4423788.,  4443024.,
      4546436.,  4566344.,  4586252.,  4606160.,  4707556.,  4728136.,
      4748716.,  4769296.,  4868676.,  4889928.,  4911180.,  4932432.,
      4267336.,  4285840.,  4304344.,  4322848.,  3697772.,  3713432.,
      3729092.,  3744752.,  3161520.,  3174240.,  3186960.,  3199680.,
      3197944.,  3212336.,  3226728.,  3241120.,  4170542.,  4188812.,
      4207082.,  4225352.,  5113876.,  5136136.,  5158396.,  5180656.,
      6026154.,  6052516.,  6078878.,  6105240.,  6193434.,  6220580.,
      6247726.,  6274872.,  6360714.,  6388644.,  6416574.,  6444504.,
      6527994.,  6556708.,  6585422.,  6614136.,  5685844.,  5710792.,
      5735740.,  5760688.,  4891902.,  4912972.,  4934042.,  4955112.,
      4147960.,  4165040.,  4182120.,  4199200.,  4156024.,  4174896.,
      4193768.,  4212640.,  5384782.,  5408652.,  5432522.,  5456392.,
      6566356.,  6595336.,  6624316.,  6653296.,  7698954.,  7733156.,
      7767358.,  7801560.,  7866234.,  7901220.,  7936206.,  7971192.,
      8033514.,  8069284.,  8105054.,  8140824.,  8200794.,  8237348.,
      8273902.,  8310456.,  7112724.,  7144392.,  7176060.,  7207728.,
      6090782.,  6117452.,  6144122.,  6170792.,  5136760.,  5158320.,
      5179880.,  5201440.,  5114104.,  5137456.,  5160808.,  5184160.,
      6599022.,  6628492.,  6657962.,  6687432.,  8018836.,  8054536.,
      8090236.,  8125936.,  9371754.,  9413796.,  9455838.,  9497880.,
      9539034.,  9581860.,  9624686.,  9667512.,  9706314.,  9749924.,
      9793534.,  9837144.,  9873594.,  9917988.,  9962382.,  10006776.,
      8539604.,  8577992.,  8616380.,  8654768.,  7289662.,  7321932.,
      7354202.,  7386472.,  6125560.,  6151600.,  6177640.,  6203680.,
      4661680.,  4683616.,  4705552.,  4727488.,  6098892.,  6126552.,
      6154212.,  6181872.,  7473096.,  7506576.,  7540056.,  7573536.,
      8782756.,  8822152.,  8861548.,  8900944.,  8925956.,  8966024.,
      9006092.,  9046160.,  9069156.,  9109896.,  9150636.,  9191376.,
      9212356.,  9253768.,  9295180.,  9336592.,  8031816.,  8067600.,
      8103384.,  8139168.,  6931692.,  6961752.,  6991812.,  7021872.,
      5913520.,  5937760.,  5962000.,  5986240.,  4716648.,  4736528.,
      4756408.,  4776288.,  6243882.,  6268932.,  6293982.,  6319032.,
      7714556.,  7744856.,  7775156.,  7805456.,  9127390.,  9163020.,
      9198650.,  9234280.,  9259054.,  9295244.,  9331434.,  9367624.,
      9390718.,  9427468.,  9464218.,  9500968.,  9522382.,  9559692.,
      9597002.,  9634312.,  8369596.,  8401816.,  8434036.,  8466256.,
      7289242.,  7316292.,  7343342.,  7370392.,  6282600.,  6304400.,
      6326200.,  6348000.,  4608288.,  4625472.,  4642656.,  4659840.,
      5630600.,  5652240.,  5673880.,  5695520.,  6598960.,  6625120.,
      6651280.,  6677440.,  7512344.,  7543088.,  7573832.,  7604576.,
      7612248.,  7643440.,  7674632.,  7705824.,  7712152.,  7743792.,
      7775432.,  7807072.,  7812056.,  7844144.,  7876232.,  7908320.,
      6510640.,  6538336.,  6566032.,  6593728.,  5269320.,  5292560.,
      5315800.,  5339040.,  4089120.,  4107840.,  4126560.,  4145280.,
      6154016.,  6181440.,  6208864.,  6236288.,  8079112.,  8113552.,
      8147992.,  8182432.,  9914416.,  9955936.,  9997456.,  10038976.,
      11658904., 11707568., 11756232., 11804896., 11770072., 11819184.,
      11868296., 11917408., 11342616., 11390128., 11437640., 11485152.,
      10947928., 10993840., 11039752., 11085664., 9507632.,  9546592.,
      9585552.,  9624512.,  8171464.,  8203408.,  8235352.,  8267296.,
      6940448.,  6965312.,  6990176.,  7015040.,  6575336.,  6603024.,
      6630712.,  6658400.,  8677322.,  8712132.,  8746942.,  8781752.,
      10693052., 10735064., 10777076., 10819088., 12621246., 12670540.,
      12719834., 12769128., 12763662., 12813516., 12863370., 12913224.,
      12596830., 12645196., 12693562., 12741928., 12462766., 12509644.,
      12556522., 12603400., 10923132., 10962968., 11002804., 11042640.,
      9485626.,  9518340.,  9551054.,  9583768.,  8151528.,  8177040.,
      8202552.,  8228064.,  7447728.,  7476320.,  7504912.,  7533504.,
      9828492.,  9864472.,  9900452.,  9936432.,  12122184., 12165648.,
      12209112., 12252576., 14327268., 14378312., 14429356., 14480400.,
      14488388., 14540104., 14591820., 14643536., 14569636., 14619976.,
      14670316., 14720656., 14683652., 14732616., 14781580., 14830544.,
      12930760., 12972432., 13014104., 13055776., 10233772., 10268056.,
      10302340., 10336624., 7642800.,  7669600.,  7696400.,  7723200.,
      7650936.,  7681072.,  7711208.,  7741344.,  9345870.,  9383820.,
      9421770.,  9459720.,  10948564., 10994440., 11040316., 11086192.,
      12457226., 12511140., 12565054., 12618968., 12624506., 12679204.,
      12733902., 12788600., 11892714., 11946148., 11999582., 12053016.,
      11193690., 11245860., 11298030., 11350200., 9131540.,  9176008.,
      9220476.,  9264944.,  7180574.,  7217228.,  7253882.,  7290536.,
      5342584.,  5371312.,  5400040.,  5428768.,  5209336.,  5235760.,
      5262184.,  5288608.,  6392430.,  6425740.,  6459050.,  6492360.,
      7498132.,  7538440.,  7578748.,  7619056.,  8524650.,  8572068.,
      8619486.,  8666904.,  8691930.,  8740132.,  8788334.,  8836536.,
      8189514.,  8236452.,  8283390.,  8330328.,  7719866.,  7765540.,
      7811214.,  7856888.,  6310868.,  6349768.,  6388668.,  6427568.,
      4998206.,  5030220.,  5062234.,  5094248.,  3783672.,  3808688.,
      3833704.,  3858720.,  3685240.,  3707952.,  3730664.,  3753376.,
      4585870.,  4614540.,  4643210.,  4671880.,  5423956.,  5458696.,
      5493436.,  5528176.,  6197706.,  6238628.,  6279550.,  6320472.,
      6364986.,  6406692.,  6448398.,  6490104.,  6091946.,  6132388.,
      6172830.,  6213272.,  5851674.,  5890852.,  5930030.,  5969208.,
      4866452.,  4899784.,  4933116.,  4966448.,  3962718.,  3990092.,
      4017466.,  4044840.,  3142264.,  3163568.,  3184872.,  3206176.,
      2249392.,  2264928.,  2280464.,  2296000.,  2914060.,  2933720.,
      2953380.,  2973040.,  3541320.,  3565200.,  3589080.,  3612960.,
      4129636.,  4157832.,  4186028.,  4214224.,  4272836.,  4301704.,
      4330572.,  4359440.,  4205092.,  4232584.,  4260076.,  4287568.,
      4170116.,  4196232.,  4222348.,  4248464.,  3618760.,  3640848.,
      3662936.,  3685024.,  3122220.,  3140184.,  3158148.,  3176112.,
      2682032.,  2695776.,  2709520.,  2723264.,  1966056.,  1973776.,
      1981496.,  1989216.,  2693770.,  2703620.,  2713470.,  2723320.,
      3413564.,  3425624.,  3437684.,  3449744.,  4124158.,  4138508.,
      4152858.,  4167208.,  4255822.,  4270732.,  4285642.,  4300552.,
      4387486.,  4402956.,  4418426.,  4433896.,  4519150.,  4535180.,
      4551210.,  4567240.,  4049148.,  4063128.,  4077108.,  4091088.,
      3602938.,  3614788.,  3626638.,  3638488.,  3181800.,  3191440.,
      3201080.,  3210720.,  2205472.,  2212928.,  2220384.,  2227840.,
      2724360.,  2733840.,  2743320.,  2752800.,  3228208.,  3239776.,
      3251344.,  3262912.,  3715992.,  3729712.,  3743432.,  3757152.,
      3815896.,  3830064.,  3844232.,  3858400.,  3915800.,  3930416.,
      3945032.,  3959648.,  4015704.,  4030768.,  4045832.,  4060896.,
      3373360.,  3386464.,  3399568.,  3412672.,  2752200.,  2763280.,
      2774360.,  2785440.,  2153248.,  2162240.,  2171232.,  2180224.,
      3906848.,  3924544.,  3942240.,  3959936.,  5133960.,  5156240.,
      5178520.,  5200800.,  6310192.,  6337120.,  6364048.,  6390976.,
      7434520.,  7466160.,  7497800.,  7529440.,  7545688.,  7577776.,
      7609864.,  7641952.,  7656856.,  7689392.,  7721928.,  7754464.,
      7768024.,  7801008.,  7833992.,  7866976.,  6804528.,  6832992.,
      6861456.,  6889920.,  5906248.,  5930128.,  5954008.,  5977888.,
      5074208.,  5093440.,  5112672.,  5131904.,  5549160.,  5572880.,
      5596600.,  5620320.,  7200810.,  7230660.,  7260510.,  7290360.,
      8782076.,  8818136.,  8854196.,  8890256.,  10291678., 10334028.,
      10376378., 10418728., 10434094., 10477004., 10519914., 10562824.,
      10576510., 10619980., 10663450., 10706920., 10718926., 10762956.,
      10806986., 10851016., 9316284.,  9354264.,  9392244.,  9430224.,
      7999898.,  8031748.,  8063598.,  8095448.,  6771048.,  6796688.,
      6822328.,  6847968.,  6997424.,  7027808.,  7058192.,  7088576.,
      9014220.,  9052440.,  9090660.,  9128880.,  10936776., 10982928.,
      11029080., 11075232., 12763556., 12817736., 12871916., 12926096.,
      12924676., 12979528., 13034380., 13089232., 13085796., 13141320.,
      13196844., 13252368., 13246916., 13303112., 13359308., 13415504.,
      11452488., 11500944., 11549400., 11597856., 9769708.,  9810328.,
      9850948.,  9891568.,  8200112.,  8232800.,  8265488.,  8298176.,
      8179960.,  8217648.,  8255336.,  8293024.,  10484590., 10531980.,
      10579370., 10626760., 12666772., 12723976., 12781180., 12838384.,
      14724714., 14791844., 14858974., 14926104., 14891994., 14959908.,
      15027822., 15095736., 15059274., 15127972., 15196670., 15265368.,
      15226554., 15296036., 15365518., 15435000., 13105620., 13165512.,
      13225404., 13285296., 11126078., 11176268., 11226458., 11276648.,
      9289720.,  9330096.,  9370472.,  9410848.,  9138040.,  9180208.,
      9222376.,  9264544.,  11698830., 11751820., 11804810., 11857800.,
      14119252., 14183176., 14247100., 14311024., 15858890., 15931812.,
      16004734., 16077656., 15520314., 15591972., 15663630., 15735288.,
      15214506., 15284900., 15355294., 15425688., 14941466., 15010596.,
      15079726., 15148856., 12705684., 12764104., 12822524., 12880944.,
      10629214., 10676812., 10724410., 10772008., 8713848.,  8750512.,
      8787176.,  8823840.,  8138232.,  8176688.,  8215144.,  8253600.,
      10547630., 10595980., 10644330., 10692680., 12831508., 12889864.,
      12948220., 13006576., 14678826., 14745252., 14811678., 14878104.,
      14569626., 14634788., 14699950., 14765112., 14493194., 14557092.,
      14620990., 14684888., 14449530., 14512164., 14574798., 14637432.,
      12506452., 12559304., 12612156., 12665008., 10707838., 10750796.,
      10793754., 10836712., 9055480.,  9088432.,  9121384.,  9154336.,
      7807920.,  7841632.,  7875344.,  7909056.,  10233420., 10275800.,
      10318180., 10360560., 12548808., 12599952., 12651096., 12702240.,
      14672676., 14730632., 14788588., 14846544., 14768772., 14825352.,
      14881932., 14938512., 14897636., 14952840., 15008044., 15063248.,
      14010692., 14064520., 14118348., 14172176., 11161928., 11207184.,
      11252440., 11297696., 8440684.,  8477272.,  8513860.,  8550448.,
      5848496.,  5876320.,  5904144.,  5931968.,  7309160.,  7337488.,
      7365816.,  7394144.,  8933098.,  8968708.,  9004318.,  9039928.,
      10466684., 10509656., 10552628., 10595600., 11009566., 11057932.,
      11106298., 11154664., 10274926., 10321804., 10368682., 10415560.,
      9573054.,  9618444.,  9663834.,  9709224.,  8903950.,  8947852.,
      8991754.,  9035656.,  7027772.,  7064472.,  7101172.,  7137872.,
      5257818.,  5287236.,  5316654.,  5346072.,  3595368.,  3617424.,
      3639480.,  3661536.,  4496672.,  4518976.,  4541280.,  4563584.,
      5439880.,  5467920.,  5495960.,  5524000.,  6308656.,  6342496.,
      6376336.,  6410176.,  6432280.,  6469936.,  6507592.,  6545248.,
      5895256.,  5931312.,  5967368.,  6003424.,  5391000.,  5425456.,
      5459912.,  5494368.,  4919512.,  4952368.,  4985224.,  5018080.,
      3746352.,  3773536.,  3800720.,  3827904.,  2653768.,  2675216.,
      2696664.,  2718112.,  1642784.,  1658432.,  1674080.,  1689728.};
  const std::array<int, 4> in_shape = {{3, 9, 10, 4}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x9x10x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6026154.,  6052516.,  6078878.,  6105240.,  6193434.,  6220580.,
      6247726.,  6274872.,  6360714.,  6388644.,  6416574.,  6444504.,
      6527994.,  6556708.,  6585422.,  6614136.,  7698954.,  7733156.,
      7767358.,  7801560.,  7866234.,  7901220.,  7936206.,  7971192.,
      8033514.,  8069284.,  8105054.,  8140824.,  8200794.,  8237348.,
      8273902.,  8310456.,  9371754.,  9413796.,  9455838.,  9497880.,
      9539034.,  9581860.,  9624686.,  9667512.,  9706314.,  9749924.,
      9793534.,  9837144.,  9873594.,  9917988.,  9962382.,  10006776.,
      12457226., 12511140., 12565054., 12618968., 12624506., 12679204.,
      12733902., 12788600., 11892714., 11946148., 11999582., 12053016.,
      11193690., 11245860., 11298030., 11350200., 8524650.,  8572068.,
      8619486.,  8666904.,  8691930.,  8740132.,  8788334.,  8836536.,
      8189514.,  8236452.,  8283390.,  8330328.,  7719866.,  7765540.,
      7811214.,  7856888.,  6197706.,  6238628.,  6279550.,  6320472.,
      6364986.,  6406692.,  6448398.,  6490104.,  6091946.,  6132388.,
      6172830.,  6213272.,  5851674.,  5890852.,  5930030.,  5969208.,
      14724714., 14791844., 14858974., 14926104., 14891994., 14959908.,
      15027822., 15095736., 15059274., 15127972., 15196670., 15265368.,
      15226554., 15296036., 15365518., 15435000., 15858890., 15931812.,
      16004734., 16077656., 15520314., 15591972., 15663630., 15735288.,
      15214506., 15284900., 15355294., 15425688., 14941466., 15010596.,
      15079726., 15148856., 14678826., 14745252., 14811678., 14878104.,
      14569626., 14634788., 14699950., 14765112., 14493194., 14557092.,
      14620990., 14684888., 14449530., 14512164., 14574798., 14637432.};
  const std::array<int, 4> in_shape = {{3, 9, 10, 4}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x10x8x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      9724.,   12390.,  15142.,  17976.,  18970.,  16450.,  13860.,  11204.,
      14660.,  18525.,  22460.,  26460.,  27580.,  23765.,  19900.,  15990.,
      20150.,  25315.,  30519.,  35756.,  36953.,  31689.,  26410.,  21122.,
      25970.,  32480.,  38983.,  45472.,  46697.,  39886.,  33110.,  26376.,
      31906.,  39760.,  47551.,  55272.,  56497.,  48118.,  39830.,  31640.,
      37842.,  47040.,  56119.,  65072.,  66297.,  56350.,  46550.,  36904.,
      43778.,  54320.,  64687.,  74872.,  76097.,  64582.,  53270.,  42168.,
      34034.,  42085.,  49941.,  57596.,  58499.,  49455.,  40630.,  32030.,
      25080.,  30875.,  36470.,  41860.,  42490.,  35735.,  29200.,  22890.,
      17140.,  20970.,  24610.,  28056.,  28462.,  23758.,  19260.,  14972.,
      57084.,  70790.,  84262.,  97496.,  98490.,  83650.,  69060.,  54724.,
      68260.,  84525.,  100460., 116060., 117180., 99365.,  81900.,  64790.,
      77750.,  96115.,  114039., 131516., 132713., 112329., 92410.,  72962.,
      85330.,  105280., 124663., 143472., 144697., 122206., 100310., 79016.,
      91266.,  112560., 133231., 153272., 154497., 130438., 107030., 84280.,
      97202.,  119840., 141799., 163072., 164297., 138670., 113750., 89544.,
      103138., 127120., 150367., 172872., 174097., 146902., 120470., 94808.,
      78194.,  96085.,  113301., 129836., 130739., 109935., 89830.,  70430.,
      56280.,  68875.,  80870.,  92260.,  92890.,  77735.,  63200.,  49290.,
      37620.,  45770.,  53410.,  60536.,  60942.,  50638.,  40860.,  31612.,
      104444., 129190., 153382., 177016., 178010., 150850., 124260., 98244.,
      121860., 150525., 178460., 205660., 206780., 174965., 143900., 113590.,
      135350., 166915., 197559., 227276., 228473., 192969., 158410., 124802.,
      144690., 178080., 210343., 241472., 242697., 204526., 167510., 131656.,
      150626., 185360., 218911., 251272., 252497., 212758., 174230., 136920.,
      156562., 192640., 227479., 261072., 262297., 220990., 180950., 142184.,
      162498., 199920., 236047., 270872., 272097., 229222., 187670., 147448.,
      122354., 150085., 176661., 202076., 202979., 170415., 139030., 108830.,
      87480.,  106875., 125270., 142660., 143290., 119735., 97200.,  75690.,
      58100.,  70570.,  82210.,  93016.,  93422.,  77518.,  62460.,  48252.};
  const std::array<int, 4> in_shape = {{3, 10, 8, 1}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x10x8x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      45472.,  46697.,  55272.,  56497.,  65072.,  66297.,  74872.,  76097.,
      143472., 144697., 153272., 154497., 163072., 164297., 172872., 174097.,
      241472., 242697., 251272., 252497., 261072., 262297., 270872., 272097.};
  const std::array<int, 4> in_shape = {{3, 10, 8, 1}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x10x8x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      19216.,  19448.,  24480.,  24780.,  29912.,  30284.,  35504.,  35952.,
      37464.,  37940.,  32480.,  32900.,  27360.,  27720.,  22112.,  22408.,
      28950.,  29320.,  36575.,  37050.,  44335.,  44920.,  52220.,  52920.,
      54425.,  55160.,  46885.,  47530.,  39250.,  39800.,  31530.,  31980.,
      39760.,  40300.,  49940.,  50630.,  60192.,  61038.,  70504.,  71512.,
      72856.,  73906.,  62460.,  63378.,  52040.,  52820.,  41608.,  42244.,
      51198.,  51940.,  64015.,  64960.,  76811.,  77966.,  89572.,  90944.,
      91973.,  93394.,  78533.,  79772.,  65170.,  66220.,  51898.,  52752.,
      62846.,  63812.,  78295.,  79520.,  93611.,  95102.,  108780., 110544.,
      111181., 112994., 94661.,  96236.,  78330.,  79660.,  62202.,  63280.,
      74494.,  75684.,  92575.,  94080.,  110411., 112238., 127988., 130144.,
      130389., 132594., 110789., 112700., 91490.,  93100.,  72506.,  73808.,
      86142.,  87556.,  106855., 108640., 127211., 129374., 147196., 149744.,
      149597., 152194., 126917., 129164., 104650., 106540., 82810.,  84336.,
      66760.,  68068.,  82520.,  84170.,  97884.,  99882.,  112840., 115192.,
      114604., 116998., 96840.,  98910.,  79520.,  81260.,  62656.,  64060.,
      48990.,  50160.,  60275.,  61750.,  71155.,  72940.,  81620.,  83720.,
      82845.,  84980.,  69625.,  71470.,  56850.,  58400.,  44530.,  45780.,
      33280.,  34280.,  40680.,  41940.,  47696.,  49220.,  54320.,  56112.,
      55104.,  56924.,  45944.,  47516.,  37200.,  38520.,  28880.,  29944.,
      112656., 114168., 139680., 141580., 166232., 168524., 192304., 194992.,
      194264., 196980., 164960., 167300., 136160., 138120., 107872., 109448.,
      134550., 136520., 166575., 169050., 197935., 200920., 228620., 232120.,
      230825., 234360., 195685., 198730., 161250., 163800., 127530., 129580.,
      153040., 155500., 189140., 192230., 224352., 228078., 258664., 263032.,
      261016., 265426., 220860., 224658., 181640., 184820., 143368., 145924.,
      167678., 170660., 206815., 210560., 244811., 249326., 281652., 286944.,
      284053., 289394., 239813., 244412., 196770., 200620., 154938., 158032.,
      179326., 182532., 221095., 225120., 261611., 266462., 300860., 306544.,
      303261., 308994., 255941., 260876., 209930., 214060., 165242., 168560.,
      190974., 194404., 235375., 239680., 278411., 283598., 320068., 326144.,
      322469., 328594., 272069., 277340., 223090., 227500., 175546., 179088.,
      202622., 206276., 249655., 254240., 295211., 300734., 339276., 345744.,
      341677., 348194., 288197., 293804., 236250., 240940., 185850., 189616.,
      153160., 156388., 188120., 192170., 221724., 226602., 253960., 259672.,
      255724., 261478., 214920., 219870., 175520., 179660., 137536., 140860.,
      109790., 112560., 134275., 137750., 157555., 161740., 179620., 184520.,
      180845., 185780., 151225., 155470., 122850., 126400., 95730.,  98580.,
      72960.,  75240.,  88680.,  91540.,  103376., 106820., 117040., 121072.,
      117824., 121884., 97784.,  101276., 78800.,  81720.,  60880.,  63224.,
      206096., 208888., 254880., 258380., 302552., 306764., 349104., 354032.,
      351064., 356020., 297440., 301700., 244960., 248520., 193632., 196488.,
      240150., 243720., 296575., 301050., 351535., 356920., 405020., 411320.,
      407225., 413560., 344485., 349930., 283250., 287800., 223530., 227180.,
      266320., 270700., 328340., 333830., 388512., 395118., 446824., 454552.,
      449176., 456946., 379260., 385938., 311240., 316820., 245128., 249604.,
      284158., 289380., 349615., 356160., 412811., 420686., 473732., 482944.,
      476133., 485394., 401093., 409052., 328370., 335020., 257978., 263312.,
      295806., 301252., 363895., 370720., 429611., 437822., 492940., 502544.,
      495341., 504994., 417221., 425516., 341530., 348460., 268282., 273840.,
      307454., 313124., 378175., 385280., 446411., 454958., 512148., 522144.,
      514549., 524594., 433349., 441980., 354690., 361900., 278586., 284368.,
      319102., 324996., 392455., 399840., 463211., 472094., 531356., 541744.,
      533757., 544194., 449477., 458444., 367850., 375340., 288890., 294896.,
      239560., 244708., 293720., 300170., 345564., 353322., 395080., 404152.,
      396844., 405958., 333000., 340830., 271520., 278060., 212416., 217660.,
      170590., 174960., 208275., 213750., 243955., 250540., 277620., 285320.,
      278845., 286580., 232825., 239470., 188850., 194400., 146930., 151380.,
      112640., 116200., 136680., 141140., 159056., 164420., 179760., 186032.,
      180544., 186844., 149624., 155036., 120400., 124920., 92880.,  96504.};
  const std::array<int, 4> in_shape = {{3, 10, 8, 1}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x10x8x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      89572.,  90944.,  91973.,  93394.,  108780., 110544., 111181., 112994.,
      127988., 130144., 130389., 132594., 147196., 149744., 149597., 152194.,
      281652., 286944., 284053., 289394., 300860., 306544., 303261., 308994.,
      320068., 326144., 322469., 328594., 339276., 345744., 341677., 348194.,
      473732., 482944., 476133., 485394., 492940., 502544., 495341., 504994.,
      512148., 522144., 514549., 524594., 531356., 541744., 533757., 544194.};
  const std::array<int, 4> in_shape = {{3, 10, 8, 1}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x10x8x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      38200.,   38432.,   38664.,   38896.,   48660.,   48960.,   49260.,
      49560.,   59452.,   59824.,   60196.,   60568.,   70560.,   71008.,
      71456.,   71904.,   74452.,   74928.,   75404.,   75880.,   64540.,
      64960.,   65380.,   65800.,   54360.,   54720.,   55080.,   55440.,
      43928.,   44224.,   44520.,   44816.,   57530.,   57900.,   58270.,
      58640.,   72675.,   73150.,   73625.,   74100.,   88085.,   88670.,
      89255.,   89840.,   103740.,  104440.,  105140.,  105840.,  108115.,
      108850.,  109585.,  110320.,  93125.,   93770.,   94415.,   95060.,
      77950.,   78500.,   79050.,   79600.,   62610.,   63060.,   63510.,
      63960.,   78980.,   79520.,   80060.,   80600.,   99190.,   99880.,
      100570.,  101260.,  119538.,  120384.,  121230.,  122076.,  140000.,
      141008.,  142016.,  143024.,  144662.,  145712.,  146762.,  147812.,
      124002.,  124920.,  125838.,  126756.,  103300.,  104080.,  104860.,
      105640.,  82580.,   83216.,   83852.,   84488.,   101654.,  102396.,
      103138.,  103880.,  127085.,  128030.,  128975.,  129920.,  152467.,
      153622.,  154777.,  155932.,  177772.,  179144.,  180516.,  181888.,
      182525.,  183946.,  185367.,  186788.,  155827.,  157066.,  158305.,
      159544.,  129290.,  130340.,  131390.,  132440.,  102942.,  103796.,
      104650.,  105504.,  124726.,  125692.,  126658.,  127624.,  155365.,
      156590.,  157815.,  159040.,  185731.,  187222.,  188713.,  190204.,
      215796.,  217560.,  219324.,  221088.,  220549.,  222362.,  224175.,
      225988.,  187747.,  189322.,  190897.,  192472.,  155330.,  156660.,
      157990.,  159320.,  123326.,  124404.,  125482.,  126560.,  147798.,
      148988.,  150178.,  151368.,  183645.,  185150.,  186655.,  188160.,
      218995.,  220822.,  222649.,  224476.,  253820.,  255976.,  258132.,
      260288.,  258573.,  260778.,  262983.,  265188.,  219667.,  221578.,
      223489.,  225400.,  181370.,  182980.,  184590.,  186200.,  143710.,
      145012.,  146314.,  147616.,  170870.,  172284.,  173698.,  175112.,
      211925.,  213710.,  215495.,  217280.,  252259.,  254422.,  256585.,
      258748.,  291844.,  294392.,  296940.,  299488.,  296597.,  299194.,
      301791.,  304388.,  251587.,  253834.,  256081.,  258328.,  207410.,
      209300.,  211190.,  213080.,  164094.,  165620.,  167146.,  168672.,
      132212.,  133520.,  134828.,  136136.,  163390.,  165040.,  166690.,
      168340.,  193770.,  195768.,  197766.,  199764.,  223328.,  225680.,
      228032.,  230384.,  226814.,  229208.,  231602.,  233996.,  191610.,
      193680.,  195750.,  197820.,  157300.,  159040.,  160780.,  162520.,
      123908.,  125312.,  126716.,  128120.,  96810.,   97980.,   99150.,
      100320.,  119075.,  120550.,  122025.,  123500.,  140525.,  142310.,
      144095.,  145880.,  161140.,  163240.,  165340.,  167440.,  163555.,
      165690.,  167825.,  169960.,  137405.,  139250.,  141095.,  142940.,
      112150.,  113700.,  115250.,  116800.,  87810.,   89060.,   90310.,
      91560.,   65560.,   66560.,   67560.,   68560.,   80100.,   81360.,
      82620.,   83880.,   93868.,   95392.,   96916.,   98440.,   106848.,
      108640.,  110432.,  112224.,  108388.,  110208.,  112028.,  113848.,
      90316.,   91888.,   93460.,   95032.,   73080.,   74400.,   75720.,
      77040.,   56696.,   57760.,   58824.,   59888.,   223800.,  225312.,
      226824.,  228336.,  277460.,  279360.,  281260.,  283160.,  330172.,
      332464.,  334756.,  337048.,  381920.,  384608.,  387296.,  389984.,
      385812.,  388528.,  391244.,  393960.,  327580.,  329920.,  332260.,
      334600.,  270360.,  272320.,  274280.,  276240.,  214168.,  215744.,
      217320.,  218896.,  267130.,  269100.,  271070.,  273040.,  330675.,
      333150.,  335625.,  338100.,  392885.,  395870.,  398855.,  401840.,
      453740.,  457240.,  460740.,  464240.,  458115.,  461650.,  465185.,
      468720.,  388325.,  391370.,  394415.,  397460.,  319950.,  322500.,
      325050.,  327600.,  253010.,  255060.,  257110.,  259160.,  303620.,
      306080.,  308540.,  311000.,  375190.,  378280.,  381370.,  384460.,
      444978.,  448704.,  452430.,  456156.,  512960.,  517328.,  521696.,
      526064.,  517622.,  522032.,  526442.,  530852.,  437922.,  441720.,
      445518.,  449316.,  360100.,  363280.,  366460.,  369640.,  284180.,
      286736.,  289292.,  291848.,  332374.,  335356.,  338338.,  341320.,
      409885.,  413630.,  417375.,  421120.,  485107.,  489622.,  494137.,
      498652.,  558012.,  563304.,  568596.,  573888.,  562765.,  568106.,
      573447.,  578788.,  475027.,  479626.,  484225.,  488824.,  389690.,
      393540.,  397390.,  401240.,  306782.,  309876.,  312970.,  316064.,
      355446.,  358652.,  361858.,  365064.,  438165.,  442190.,  446215.,
      450240.,  518371.,  523222.,  528073.,  532924.,  596036.,  601720.,
      607404.,  613088.,  600789.,  606522.,  612255.,  617988.,  506947.,
      511882.,  516817.,  521752.,  415730.,  419860.,  423990.,  428120.,
      327166.,  330484.,  333802.,  337120.,  378518.,  381948.,  385378.,
      388808.,  466445.,  470750.,  475055.,  479360.,  551635.,  556822.,
      562009.,  567196.,  634060.,  640136.,  646212.,  652288.,  638813.,
      644938.,  651063.,  657188.,  538867.,  544138.,  549409.,  554680.,
      441770.,  446180.,  450590.,  455000.,  347550.,  351092.,  354634.,
      358176.,  401590.,  405244.,  408898.,  412552.,  494725.,  499310.,
      503895.,  508480.,  584899.,  590422.,  595945.,  601468.,  672084.,
      678552.,  685020.,  691488.,  676837.,  683354.,  689871.,  696388.,
      570787.,  576394.,  582001.,  587608.,  467810.,  472500.,  477190.,
      481880.,  367934.,  371700.,  375466.,  379232.,  303092.,  306320.,
      309548.,  312776.,  372190.,  376240.,  380290.,  384340.,  438570.,
      443448.,  448326.,  453204.,  502208.,  507920.,  513632.,  519344.,
      505694.,  511448.,  517202.,  522956.,  424890.,  429840.,  434790.,
      439740.,  346900.,  351040.,  355180.,  359320.,  271748.,  275072.,
      278396.,  281720.,  216810.,  219580.,  222350.,  225120.,  265075.,
      268550.,  272025.,  275500.,  310925.,  315110.,  319295.,  323480.,
      354340.,  359240.,  364140.,  369040.,  356755.,  361690.,  366625.,
      371560.,  298205.,  302450.,  306695.,  310940.,  242150.,  245700.,
      249250.,  252800.,  188610.,  191460.,  194310.,  197160.,  143640.,
      145920.,  148200.,  150480.,  174500.,  177360.,  180220.,  183080.,
      203308.,  206752.,  210196.,  213640.,  230048.,  234080.,  238112.,
      242144.,  231588.,  235648.,  239708.,  243768.,  192076.,  195568.,
      199060.,  202552.,  154680.,  157600.,  160520.,  163440.,  119416.,
      121760.,  124104.,  126448.,  409400.,  412192.,  414984.,  417776.,
      506260.,  509760.,  513260.,  516760.,  600892.,  605104.,  609316.,
      613528.,  693280.,  698208.,  703136.,  708064.,  697172.,  702128.,
      707084.,  712040.,  590620.,  594880.,  599140.,  603400.,  486360.,
      489920.,  493480.,  497040.,  384408.,  387264.,  390120.,  392976.,
      476730.,  480300.,  483870.,  487440.,  588675.,  593150.,  597625.,
      602100.,  697685.,  703070.,  708455.,  713840.,  803740.,  810040.,
      816340.,  822640.,  808115.,  814450.,  820785.,  827120.,  683525.,
      688970.,  694415.,  699860.,  561950.,  566500.,  571050.,  575600.,
      443410.,  447060.,  450710.,  454360.,  528260.,  532640.,  537020.,
      541400.,  651190.,  656680.,  662170.,  667660.,  770418.,  777024.,
      783630.,  790236.,  885920.,  893648.,  901376.,  909104.,  890582.,
      898352.,  906122.,  913892.,  751842.,  758520.,  765198.,  771876.,
      616900.,  622480.,  628060.,  633640.,  485780.,  490256.,  494732.,
      499208.,  563094.,  568316.,  573538.,  578760.,  692685.,  699230.,
      705775.,  712320.,  817747.,  825622.,  833497.,  841372.,  938252.,
      947464.,  956676.,  965888.,  943005.,  952266.,  961527.,  970788.,
      794227.,  802186.,  810145.,  818104.,  650090.,  656740.,  663390.,
      670040.,  510622.,  515956.,  521290.,  526624.,  586166.,  591612.,
      597058.,  602504.,  720965.,  727790.,  734615.,  741440.,  851011.,
      859222.,  867433.,  875644.,  976276.,  985880.,  995484.,  1005088.,
      981029.,  990682.,  1000335., 1009988., 826147.,  834442.,  842737.,
      851032.,  676130.,  683060.,  689990.,  696920.,  531006.,  536564.,
      542122.,  547680.,  609238.,  614908.,  620578.,  626248.,  749245.,
      756350.,  763455.,  770560.,  884275.,  892822.,  901369.,  909916.,
      1014300., 1024296., 1034292., 1044288., 1019053., 1029098., 1039143.,
      1049188., 858067.,  866698.,  875329.,  883960.,  702170.,  709380.,
      716590.,  723800.,  551390.,  557172.,  562954.,  568736.,  632310.,
      638204.,  644098.,  649992.,  777525.,  784910.,  792295.,  799680.,
      917539.,  926422.,  935305.,  944188.,  1052324., 1062712., 1073100.,
      1083488., 1057077., 1067514., 1077951., 1088388., 889987.,  898954.,
      907921.,  916888.,  728210.,  735700.,  743190.,  750680.,  571774.,
      577780.,  583786.,  589792.,  473972.,  479120.,  484268.,  489416.,
      580990.,  587440.,  593890.,  600340.,  683370.,  691128.,  698886.,
      706644.,  781088.,  790160.,  799232.,  808304.,  784574.,  793688.,
      802802.,  811916.,  658170.,  666000.,  673830.,  681660.,  536500.,
      543040.,  549580.,  556120.,  419588.,  424832.,  430076.,  435320.,
      336810.,  341180.,  345550.,  349920.,  411075.,  416550.,  422025.,
      427500.,  481325.,  487910.,  494495.,  501080.,  547540.,  555240.,
      562940.,  570640.,  549955.,  557690.,  565425.,  573160.,  459005.,
      465650.,  472295.,  478940.,  372150.,  377700.,  383250.,  388800.,
      289410.,  293860.,  298310.,  302760.,  221720.,  225280.,  228840.,
      232400.,  268900.,  273360.,  277820.,  282280.,  312748.,  318112.,
      323476.,  328840.,  353248.,  359520.,  365792.,  372064.,  354788.,
      361088.,  367388.,  373688.,  293836.,  299248.,  304660.,  310072.,
      236280.,  240800.,  245320.,  249840.,  182136.,  185760.,  189384.,
      193008.};
  const std::array<int, 4> in_shape = {{3, 10, 8, 1}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x10x8x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      177772.,  179144.,  180516.,  181888.,  182525.,  183946.,  185367.,
      186788.,  215796.,  217560.,  219324.,  221088.,  220549.,  222362.,
      224175.,  225988.,  253820.,  255976.,  258132.,  260288.,  258573.,
      260778.,  262983.,  265188.,  291844.,  294392.,  296940.,  299488.,
      296597.,  299194.,  301791.,  304388.,  558012.,  563304.,  568596.,
      573888.,  562765.,  568106.,  573447.,  578788.,  596036.,  601720.,
      607404.,  613088.,  600789.,  606522.,  612255.,  617988.,  634060.,
      640136.,  646212.,  652288.,  638813.,  644938.,  651063.,  657188.,
      672084.,  678552.,  685020.,  691488.,  676837.,  683354.,  689871.,
      696388.,  938252.,  947464.,  956676.,  965888.,  943005.,  952266.,
      961527.,  970788.,  976276.,  985880.,  995484.,  1005088., 981029.,
      990682.,  1000335., 1009988., 1014300., 1024296., 1034292., 1044288.,
      1019053., 1029098., 1039143., 1049188., 1052324., 1062712., 1073100.,
      1083488., 1057077., 1067514., 1077951., 1088388.};
  const std::array<int, 4> in_shape = {{3, 10, 8, 1}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x10x8x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      76160.,   97080.,   118688.,  140952.,  148848.,  129104.,  108800.,
      87968.,   115220.,  145625.,  176590.,  208075.,  216965.,  186970.,
      156575.,  125820.,  158704.,  199400.,  240408.,  281680.,  291172.,
      249696.,  208100.,  166432.,  204820.,  256165.,  307454.,  358631.,
      368333.,  314594.,  261135.,  208012.,  251860.,  313845.,  375326.,
      436247.,  445949.,  379778.,  314335.,  249676.,  298900.,  371525.,
      443198.,  513863.,  523565.,  444962.,  367535.,  291340.,  345940.,
      429205.,  511070.,  591479.,  601181.,  510146.,  420735.,  333004.,
      268576.,  332060.,  393984.,  454300.,  461440.,  390024.,  320360.,
      252496.,  197540.,  243125.,  287110.,  329455.,  334425.,  281170.,
      229675.,  179980.,  134624.,  164640.,  193136.,  220080.,  223272.,
      186272.,  150920.,  117248.,  452480.,  561080.,  667808.,  772632.,
      780528.,  662864.,  547200.,  433568.,  540820.,  669625.,  795790.,
      919275.,  928165.,  786970.,  648575.,  513020.,  615664.,  761000.,
      902808.,  1041040., 1050532., 889056.,  731300.,  577312.,  675220.,
      832965.,  986174.,  1134791., 1144493., 966434.,  793135.,  624652.,
      722260.,  890645.,  1054046., 1212407., 1222109., 1031618., 846335.,
      666316.,  769300.,  948325.,  1121918., 1290023., 1299725., 1096802.,
      899535.,  707980.,  816340.,  1006005., 1189790., 1367639., 1377341.,
      1161986., 952735.,  749644.,  618016.,  759260.,  895104.,  1025500.,
      1032640., 868104.,  709160.,  555856.,  443940.,  543125.,  637510.,
      727055.,  732025.,  612370.,  497675.,  387980.,  295904.,  359840.,
      419696.,  475440.,  478632.,  397472.,  320520.,  247808.,  828800.,
      1025080., 1216928., 1404312., 1412208., 1196624., 985600.,  779168.,
      966420.,  1193625., 1414990., 1630475., 1639365., 1386970., 1140575.,
      900220.,  1072624., 1322600., 1565208., 1800400., 1809892., 1528416.,
      1254500., 988192.,  1145620., 1409765., 1664894., 1910951., 1920653.,
      1618274., 1325135., 1041292., 1192660., 1467445., 1732766., 1988567.,
      1998269., 1683458., 1378335., 1082956., 1239700., 1525125., 1800638.,
      2066183., 2075885., 1748642., 1431535., 1124620., 1286740., 1582805.,
      1868510., 2143799., 2153501., 1813826., 1484735., 1166284., 967456.,
      1186460., 1396224., 1596700., 1603840., 1346184., 1097960., 859216.,
      690340.,  843125.,  987910.,  1124655., 1129625., 943570.,  765675.,
      595980.,  457184.,  555040.,  646256.,  730800.,  733992.,  608672.,
      490120.,  378368.};
  const std::array<int, 4> in_shape = {{3, 10, 8, 2}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x10x8x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      358631.,  368333.,  436247.,  445949.,  513863.,  523565.,
      591479.,  601181.,  1134791., 1144493., 1212407., 1222109.,
      1290023., 1299725., 1367639., 1377341., 1910951., 1920653.,
      1988567., 1998269., 2066183., 2075885., 2143799., 2153501.};
  const std::array<int, 4> in_shape = {{3, 10, 8, 2}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x10x8x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      151408.,  152320.,  192980.,  194160.,  235912.,  237376.,  280140.,
      281904.,  295820.,  297696.,  256552.,  258208.,  216180.,  217600.,
      174768.,  175936.,  228980.,  230440.,  289375.,  291250.,  350870.,
      353180.,  413385.,  416150.,  431025.,  433930.,  371390.,  373940.,
      310975.,  313150.,  249860.,  251640.,  315272.,  317408.,  396070.,
      398800.,  477468.,  480816.,  559370.,  563360.,  578186.,  582344.,
      495756.,  499392.,  413110.,  416200.,  330344.,  332864.,  406700.,
      409640.,  508585.,  512330.,  610330.,  614908.,  711823.,  717262.,
      731031.,  736666.,  624274.,  629188.,  518105.,  522270.,  412636.,
      416024.,  499884.,  503720.,  622825.,  627690.,  744730.,  750652.,
      865487.,  872494.,  884695.,  891898.,  753298.,  759556.,  623385.,
      628670.,  495068.,  499352.,  593068.,  597800.,  737065.,  743050.,
      879130.,  886396.,  1019151., 1027726., 1038359., 1047130., 882322.,
      889924.,  728665.,  735070.,  577500.,  582680.,  686252.,  691880.,
      851305.,  858410.,  1013530., 1022140., 1172815., 1182958., 1192023.,
      1202362., 1011346., 1020292., 833945.,  841470.,  659932.,  666008.,
      531944.,  537152.,  657550.,  664120.,  780012.,  787968.,  899234.,
      908600.,  913346.,  922880.,  771804.,  780048.,  633790.,  640720.,
      499400.,  504992.,  390420.,  395080.,  480375.,  486250.,  567110.,
      574220.,  650545.,  658910.,  660345.,  668850.,  554990.,  562340.,
      453175.,  459350.,  354980.,  359960.,  265264.,  269248.,  324260.,
      329280.,  380200.,  386272.,  433020.,  440160.,  439292.,  446544.,
      366280.,  372544.,  296580.,  301840.,  230256.,  234496.,  898928.,
      904960.,  1114580., 1122160., 1326472., 1335616., 1534540., 1545264.,
      1550220., 1561056., 1316392., 1325728., 1086580., 1094400., 860848.,
      867136.,  1073780., 1081640., 1329375., 1339250., 1579670., 1591580.,
      1824585., 1838550., 1842225., 1856330., 1561790., 1573940., 1286975.,
      1297150., 1017860., 1026040., 1221512., 1231328., 1509670., 1522000.,
      1790748., 1805616., 2064650., 2082080., 2083466., 2101064., 1762956.,
      1778112., 1449910., 1462600., 1144424., 1154624., 1338540., 1350440.,
      1650985., 1665930., 1954330., 1972348., 2248463., 2269582., 2267671.,
      2288986., 1914514., 1932868., 1570905., 1586270., 1236956., 1249304.,
      1431724., 1444520., 1765225., 1781290., 2088730., 2108092., 2402127.,
      2424814., 2421335., 2444218., 2043538., 2063236., 1676185., 1692670.,
      1319388., 1332632., 1524908., 1538600., 1879465., 1896650., 2223130.,
      2243836., 2555791., 2580046., 2574999., 2599450., 2172562., 2193604.,
      1781465., 1799070., 1401820., 1415960., 1618092., 1632680., 1993705.,
      2012010., 2357530., 2379580., 2709455., 2735278., 2728663., 2754682.,
      2301586., 2323972., 1886745., 1905470., 1484252., 1499288., 1223144.,
      1236032., 1502350., 1518520., 1770732., 1790208., 2028194., 2051000.,
      2042306., 2065280., 1716444., 1736208., 1401790., 1418320., 1098440.,
      1111712., 876820.,  887880.,  1072375., 1086250., 1258310., 1275020.,
      1434545., 1454110., 1444345., 1464050., 1207790., 1224740., 981175.,
      995350.,  764580.,  775960.,  582704.,  591808.,  708260.,  719680.,
      825640.,  839392.,  934780.,  950880.,  941052.,  957264.,  781000.,
      794944.,  629380.,  641040.,  486256.,  495616.,  1646448., 1657600.,
      2036180., 2050160., 2417032., 2433856., 2788940., 2808624., 2804620.,
      2824416., 2376232., 2393248., 1956980., 1971200., 1546928., 1558336.,
      1918580., 1932840., 2369375., 2387250., 2808470., 2829980., 3235785.,
      3260950., 3253425., 3278730., 2752190., 2773940., 2262975., 2281150.,
      1785860., 1800440., 2127752., 2145248., 2623270., 2645200., 3104028.,
      3130416., 3569930., 3600800., 3588746., 3619784., 3030156., 3056832.,
      2486710., 2509000., 1958504., 1976384., 2270380., 2291240., 2793385.,
      2819530., 3298330., 3329788., 3785103., 3821902., 3804311., 3841306.,
      3204754., 3236548., 2623705., 2650270., 2061276., 2082584., 2363564.,
      2385320., 2907625., 2934890., 3432730., 3465532., 3938767., 3977134.,
      3957975., 3996538., 3333778., 3366916., 2728985., 2756670., 2143708.,
      2165912., 2456748., 2479400., 3021865., 3050250., 3567130., 3601276.,
      4092431., 4132366., 4111639., 4151770., 3462802., 3497284., 2834265.,
      2863070., 2226140., 2249240., 2549932., 2573480., 3136105., 3165610.,
      3701530., 3737020., 4246095., 4287598., 4265303., 4307002., 3591826.,
      3627652., 2939545., 2969470., 2308572., 2332568., 1914344., 1934912.,
      2347150., 2372920., 2761452., 2792448., 3157154., 3193400., 3171266.,
      3207680., 2661084., 2692368., 2169790., 2195920., 1697480., 1718432.,
      1363220., 1380680., 1664375., 1686250., 1949510., 1975820., 2218545.,
      2249310., 2228345., 2259250., 1860590., 1887140., 1509175., 1531350.,
      1174180., 1191960., 900144.,  914368.,  1092260., 1110080., 1271080.,
      1292512., 1436540., 1461600., 1442812., 1467984., 1195720., 1217344.,
      962180.,  980240.,  742256.,  756736.};
  const std::array<int, 4> in_shape = {{3, 10, 8, 2}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x10x8x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      711823.,  717262.,  731031.,  736666.,  865487.,  872494.,  884695.,
      891898.,  1019151., 1027726., 1038359., 1047130., 1172815., 1182958.,
      1192023., 1202362., 2248463., 2269582., 2267671., 2288986., 2402127.,
      2424814., 2421335., 2444218., 2555791., 2580046., 2574999., 2599450.,
      2709455., 2735278., 2728663., 2754682., 3785103., 3821902., 3804311.,
      3841306., 3938767., 3977134., 3957975., 3996538., 4092431., 4132366.,
      4111639., 4151770., 4246095., 4287598., 4265303., 4307002.};
  const std::array<int, 4> in_shape = {{3, 10, 8, 2}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x10x8x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      301904.,  302816.,  303728.,  304640.,  384780.,  385960.,  387140.,
      388320.,  470360.,  471824.,  473288.,  474752.,  558516.,  560280.,
      562044.,  563808.,  589764.,  591640.,  593516.,  595392.,  511448.,
      513104.,  514760.,  516416.,  430940.,  432360.,  433780.,  435200.,
      348368.,  349536.,  350704.,  351872.,  456500.,  457960.,  459420.,
      460880.,  576875.,  578750.,  580625.,  582500.,  699430.,  701740.,
      704050.,  706360.,  824005.,  826770.,  829535.,  832300.,  859145.,
      862050.,  864955.,  867860.,  740230.,  742780.,  745330.,  747880.,
      619775.,  621950.,  624125.,  626300.,  497940.,  499720.,  501500.,
      503280.,  628408.,  630544.,  632680.,  634816.,  789410.,  792140.,
      794870.,  797600.,  951588.,  954936.,  958284.,  961632.,  1114750.,
      1118740., 1122730., 1126720., 1152214., 1156372., 1160530., 1164688.,
      987876.,  991512.,  995148.,  998784.,  823130.,  826220.,  829310.,
      832400.,  658168.,  660688.,  663208.,  665728.,  810460.,  813400.,
      816340.,  819280.,  1013425., 1017170., 1020915., 1024660., 1216082.,
      1220660., 1225238., 1229816., 1418207., 1423646., 1429085., 1434524.,
      1456427., 1462062., 1467697., 1473332., 1243634., 1248548., 1253462.,
      1258376., 1032045., 1036210., 1040375., 1044540., 821884.,  825272.,
      828660.,  832048.,  995932.,  999768.,  1003604., 1007440., 1240785.,
      1245650., 1250515., 1255380., 1483538., 1489460., 1495382., 1501304.,
      1723967., 1730974., 1737981., 1744988., 1762187., 1769390., 1776593.,
      1783796., 1500338., 1506596., 1512854., 1519112., 1241485., 1246770.,
      1252055., 1257340., 985852.,  990136.,  994420.,  998704.,  1181404.,
      1186136., 1190868., 1195600., 1468145., 1474130., 1480115., 1486100.,
      1750994., 1758260., 1765526., 1772792., 2029727., 2038302., 2046877.,
      2055452., 2067947., 2076718., 2085489., 2094260., 1757042., 1764644.,
      1772246., 1779848., 1450925., 1457330., 1463735., 1470140., 1149820.,
      1155000., 1160180., 1165360., 1366876., 1372504., 1378132., 1383760.,
      1695505., 1702610., 1709715., 1716820., 2018450., 2027060., 2035670.,
      2044280., 2335487., 2345630., 2355773., 2365916., 2373707., 2384046.,
      2394385., 2404724., 2013746., 2022692., 2031638., 2040584., 1660365.,
      1667890., 1675415., 1682940., 1313788., 1319864., 1325940., 1332016.,
      1058680., 1063888., 1069096., 1074304., 1308530., 1315100., 1321670.,
      1328240., 1552068., 1560024., 1567980., 1575936., 1789102., 1798468.,
      1807834., 1817200., 1817158., 1826692., 1836226., 1845760., 1535364.,
      1543608., 1551852., 1560096., 1260650., 1267580., 1274510., 1281440.,
      993208.,  998800.,  1004392., 1009984., 776180.,  780840.,  785500.,
      790160.,  954875.,  960750.,  966625.,  972500.,  1127110., 1134220.,
      1141330., 1148440., 1292725., 1301090., 1309455., 1317820., 1312185.,
      1320690., 1329195., 1337700., 1102630., 1109980., 1117330., 1124680.,
      900175.,  906350.,  912525.,  918700.,  704980.,  709960.,  714940.,
      719920.,  526544.,  530528.,  534512.,  538496.,  643500.,  648520.,
      653540.,  658560.,  754328.,  760400.,  766472.,  772544.,  858900.,
      866040.,  873180.,  880320.,  871332.,  878584.,  885836.,  893088.,
      726296.,  732560.,  738824.,  745088.,  587900.,  593160.,  598420.,
      603680.,  456272.,  460512.,  464752.,  468992.,  1791824., 1797856.,
      1803888., 1809920., 2221580., 2229160., 2236740., 2244320., 2643800.,
      2652944., 2662088., 2671232., 3058356., 3069080., 3079804., 3090528.,
      3089604., 3100440., 3111276., 3122112., 2623448., 2632784., 2642120.,
      2651456., 2165340., 2173160., 2180980., 2188800., 1715408., 1721696.,
      1727984., 1734272., 2139700., 2147560., 2155420., 2163280., 2648875.,
      2658750., 2668625., 2678500., 3147430., 3159340., 3171250., 3183160.,
      3635205., 3649170., 3663135., 3677100., 3670345., 3684450., 3698555.,
      3712660., 3111430., 3123580., 3135730., 3147880., 2563775., 2573950.,
      2584125., 2594300., 2027540., 2035720., 2043900., 2052080., 2433208.,
      2443024., 2452840., 2462656., 3007010., 3019340., 3031670., 3044000.,
      3566628., 3581496., 3596364., 3611232., 4111870., 4129300., 4146730.,
      4164160., 4149334., 4166932., 4184530., 4202128., 3510756., 3525912.,
      3541068., 3556224., 2887130., 2899820., 2912510., 2925200., 2278648.,
      2288848., 2299048., 2309248., 2665180., 2677080., 2688980., 2700880.,
      3287025., 3301970., 3316915., 3331860., 3890642., 3908660., 3926678.,
      3944696., 4475807., 4496926., 4518045., 4539164., 4514027., 4535342.,
      4556657., 4577972., 3810674., 3829028., 3847382., 3865736., 3126445.,
      3141810., 3157175., 3172540., 2461564., 2473912., 2486260., 2498608.,
      2850652., 2863448., 2876244., 2889040., 3514385., 3530450., 3546515.,
      3562580., 4158098., 4177460., 4196822., 4216184., 4781567., 4804254.,
      4826941., 4849628., 4819787., 4842670., 4865553., 4888436., 4067378.,
      4087076., 4106774., 4126472., 3335885., 3352370., 3368855., 3385340.,
      2625532., 2638776., 2652020., 2665264., 3036124., 3049816., 3063508.,
      3077200., 3741745., 3758930., 3776115., 3793300., 4425554., 4446260.,
      4466966., 4487672., 5087327., 5111582., 5135837., 5160092., 5125547.,
      5149998., 5174449., 5198900., 4324082., 4345124., 4366166., 4387208.,
      3545325., 3562930., 3580535., 3598140., 2789500., 2803640., 2817780.,
      2831920., 3221596., 3236184., 3250772., 3265360., 3969105., 3987410.,
      4005715., 4024020., 4693010., 4715060., 4737110., 4759160., 5393087.,
      5418910., 5444733., 5470556., 5431307., 5457326., 5483345., 5509364.,
      4580786., 4603172., 4625558., 4647944., 3754765., 3773490., 3792215.,
      3810940., 2953468., 2968504., 2983540., 2998576., 2433400., 2446288.,
      2459176., 2472064., 2988530., 3004700., 3020870., 3037040., 3521988.,
      3541464., 3560940., 3580416., 4033582., 4056388., 4079194., 4102000.,
      4061638., 4084612., 4107586., 4130560., 3413124., 3432888., 3452652.,
      3472416., 2787050., 2803580., 2820110., 2836640., 2183608., 2196880.,
      2210152., 2223424., 1742580., 1753640., 1764700., 1775760., 2130875.,
      2144750., 2158625., 2172500., 2499910., 2516620., 2533330., 2550040.,
      2849525., 2869090., 2888655., 2908220., 2868985., 2888690., 2908395.,
      2928100., 2398630., 2415580., 2432530., 2449480., 1948175., 1962350.,
      1976525., 1990700., 1517780., 1529160., 1540540., 1551920., 1156304.,
      1165408., 1174512., 1183616., 1405100., 1416520., 1427940., 1439360.,
      1637528., 1651280., 1665032., 1678784., 1853460., 1869560., 1885660.,
      1901760., 1865892., 1882104., 1898316., 1914528., 1548056., 1562000.,
      1575944., 1589888., 1247100., 1258760., 1270420., 1282080., 963152.,
      972512.,  981872.,  991232.,  3281744., 3292896., 3304048., 3315200.,
      4058380., 4072360., 4086340., 4100320., 4817240., 4834064., 4850888.,
      4867712., 5558196., 5577880., 5597564., 5617248., 5589444., 5609240.,
      5629036., 5648832., 4735448., 4752464., 4769480., 4786496., 3899740.,
      3913960., 3928180., 3942400., 3082448., 3093856., 3105264., 3116672.,
      3822900., 3837160., 3851420., 3865680., 4720875., 4738750., 4756625.,
      4774500., 5595430., 5616940., 5638450., 5659960., 6446405., 6471570.,
      6496735., 6521900., 6481545., 6506850., 6532155., 6557460., 5482630.,
      5504380., 5526130., 5547880., 4507775., 4525950., 4544125., 4562300.,
      3557140., 3571720., 3586300., 3600880., 4238008., 4255504., 4273000.,
      4290496., 5224610., 5246540., 5268470., 5290400., 6181668., 6208056.,
      6234444., 6260832., 7108990., 7139860., 7170730., 7201600., 7146454.,
      7177492., 7208530., 7239568., 6033636., 6060312., 6086988., 6113664.,
      4951130., 4973420., 4995710., 5018000., 3899128., 3917008., 3934888.,
      3952768., 4519900., 4540760., 4561620., 4582480., 5560625., 5586770.,
      5612915., 5639060., 6565202., 6596660., 6628118., 6659576., 7533407.,
      7570206., 7607005., 7643804., 7571627., 7608622., 7645617., 7682612.,
      6377714., 6409508., 6441302., 6473096., 5220845., 5247410., 5273975.,
      5300540., 4101244., 4122552., 4143860., 4165168., 4705372., 4727128.,
      4748884., 4770640., 5787985., 5815250., 5842515., 5869780., 6832658.,
      6865460., 6898262., 6931064., 7839167., 7877534., 7915901., 7954268.,
      7877387., 7915950., 7954513., 7993076., 6634418., 6667556., 6700694.,
      6733832., 5430285., 5457970., 5485655., 5513340., 4265212., 4287416.,
      4309620., 4331824., 4890844., 4913496., 4936148., 4958800., 6015345.,
      6043730., 6072115., 6100500., 7100114., 7134260., 7168406., 7202552.,
      8144927., 8184862., 8224797., 8264732., 8183147., 8223278., 8263409.,
      8303540., 6891122., 6925604., 6960086., 6994568., 5639725., 5668530.,
      5697335., 5726140., 4429180., 4452280., 4475380., 4498480., 5076316.,
      5099864., 5123412., 5146960., 6242705., 6272210., 6301715., 6331220.,
      7367570., 7403060., 7438550., 7474040., 8450687., 8492190., 8533693.,
      8575196., 8488907., 8530606., 8572305., 8614004., 7147826., 7183652.,
      7219478., 7255304., 5849165., 5879090., 5909015., 5938940., 4593148.,
      4617144., 4641140., 4665136., 3808120., 3828688., 3849256., 3869824.,
      4668530., 4694300., 4720070., 4745840., 5491908., 5522904., 5553900.,
      5584896., 6278062., 6314308., 6350554., 6386800., 6306118., 6342532.,
      6378946., 6415360., 5290884., 5322168., 5353452., 5384736., 4313450.,
      4339580., 4365710., 4391840., 3374008., 3394960., 3415912., 3436864.,
      2708980., 2726440., 2743900., 2761360., 3306875., 3328750., 3350625.,
      3372500., 3872710., 3899020., 3925330., 3951640., 4406325., 4437090.,
      4467855., 4498620., 4425785., 4456690., 4487595., 4518500., 3694630.,
      3721180., 3747730., 3774280., 2996175., 3018350., 3040525., 3062700.,
      2330580., 2348360., 2366140., 2383920., 1786064., 1800288., 1814512.,
      1828736., 2166700., 2184520., 2202340., 2220160., 2520728., 2542160.,
      2563592., 2585024., 2848020., 2873080., 2898140., 2923200., 2860452.,
      2885624., 2910796., 2935968., 2369816., 2391440., 2413064., 2434688.,
      1906300., 1924360., 1942420., 1960480., 1470032., 1484512., 1498992.,
      1513472.};
  const std::array<int, 4> in_shape = {{3, 10, 8, 2}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x10x8x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1418207., 1423646., 1429085., 1434524., 1456427., 1462062., 1467697.,
      1473332., 1723967., 1730974., 1737981., 1744988., 1762187., 1769390.,
      1776593., 1783796., 2029727., 2038302., 2046877., 2055452., 2067947.,
      2076718., 2085489., 2094260., 2335487., 2345630., 2355773., 2365916.,
      2373707., 2384046., 2394385., 2404724., 4475807., 4496926., 4518045.,
      4539164., 4514027., 4535342., 4556657., 4577972., 4781567., 4804254.,
      4826941., 4849628., 4819787., 4842670., 4865553., 4888436., 5087327.,
      5111582., 5135837., 5160092., 5125547., 5149998., 5174449., 5198900.,
      5393087., 5418910., 5444733., 5470556., 5431307., 5457326., 5483345.,
      5509364., 7533407., 7570206., 7607005., 7643804., 7571627., 7608622.,
      7645617., 7682612., 7839167., 7877534., 7915901., 7954268., 7877387.,
      7915950., 7954513., 7993076., 8144927., 8184862., 8224797., 8264732.,
      8183147., 8223278., 8263409., 8303540., 8450687., 8492190., 8533693.,
      8575196., 8488907., 8530606., 8572305., 8614004.};
  const std::array<int, 4> in_shape = {{3, 10, 8, 2}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x10x8x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      602784.,  768520.,  939760.,  1116248., 1179192., 1022896., 862120.,
      697120.,  913560.,  1154750., 1400420., 1650250., 1721090., 1483220.,
      1242150., 998200.,  1259696., 1582780., 1908360., 2236052., 2311652.,
      1982376., 1652140., 1321328., 1626856., 2034690., 2442076., 2848566.,
      2925790., 2498860., 2074170., 1652168., 2001384., 2493890., 2982364.,
      3466358., 3543582., 3017644., 2497530., 1983688., 2375912., 2953090.,
      3522652., 4084150., 4161374., 3536428., 2920890., 2315208., 2750440.,
      3412290., 4062940., 4701942., 4779166., 4055212., 3344250., 2646728.,
      2133872., 2638060., 3129768., 3608612., 3665396., 3097800., 2544220.,
      2005040., 1567960., 1929550., 2278340., 2614010., 2653490., 2230580.,
      1821750., 1427320., 1067040., 1304680., 1530160., 1743224., 1768536.,
      1475056., 1194760., 927904.,  3603104., 4467720., 5317360., 6151768.,
      6214712., 5277616., 4356520., 3451680., 4305560., 5330750., 6334820.,
      7317450., 7388290., 6264020., 5162150., 4083000., 4900016., 6056380.,
      7184520., 8284052., 8359652., 7074216., 5818540., 4593008., 3827944.,
      4716930., 5577820., 6410166., 6487390., 5468716., 4479930., 3521480.,
      2887656., 3553090., 4195036., 4813046., 4890270., 4113580., 3362170.,
      2636488., 2176744., 2675970., 3156316., 3617334., 3694558., 3102508.,
      2531130., 1980872., 1695208., 2085570., 2461660., 2823030., 2900254.,
      2435500., 1986810., 1554632., 1031024., 1264620., 1487784., 1700132.,
      1756916., 1468104., 1191260., 926768.,  560856.,  688590.,  810692.,
      926842.,  966322.,  805940.,  652470.,  506232.,  299040.,  375400.,
      451888.,  528248.,  553560.,  470512.,  388360.,  307360.,  1802912.,
      2248200., 2690800., 3130456., 3193400., 2724784., 2259880., 1798944.,
      2270360., 2825150., 3374180., 3917130., 3987970., 3395540., 2810150.,
      2232120., 2715824., 3372220., 4018824., 4655252., 4730852., 4019112.,
      3318700., 2630000., 3124968., 3871490., 4603228., 5319734., 5396958.,
      4573996., 3767610., 2978248., 3499496., 4330690., 5143516., 5937526.,
      6014750., 5092780., 4190970., 3309768., 3874024., 4789890., 5683804.,
      6555318., 6632542., 5611564., 4614330., 3641288., 4248552., 5249090.,
      6224092., 7173110., 7250334., 6130348., 5037690., 3972808., 3245936.,
      3997420., 4724136., 5425700., 5482484., 4618440., 3780700., 2969648.,
      2351320., 2883150., 3391940., 3877370., 3916850., 3282740., 2672950.,
      2087800., 1579040., 1924200., 2249008., 2553208., 2578520., 2144752.,
      1732360., 1341600.};
  const std::array<int, 4> in_shape = {{3, 10, 8, 4}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x10x8x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2848566., 2925790., 3466358., 3543582., 4084150., 4161374.,
      4701942., 4779166., 6410166., 6487390., 4813046., 4890270.,
      3617334., 3694558., 2823030., 2900254., 5319734., 5396958.,
      5937526., 6014750., 6555318., 6632542., 7173110., 7250334.};
  const std::array<int, 4> in_shape = {{3, 10, 8, 4}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x10x8x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1201952.,  1205568.,  1532360.,  1537040.,  1873712.,  1879520.,
      2225496.,  2232496.,  2350936.,  2358384.,  2039216.,  2045792.,
      1718600.,  1724240.,  1389600.,  1394240.,  1821320.,  1827120.,
      2302050.,  2309500.,  2791660.,  2800840.,  3289510.,  3300500.,
      3430630.,  3442180.,  2956300.,  2966440.,  2475650.,  2484300.,
      1989320.,  1996400.,  2510896.,  2519392.,  3154700.,  3165560.,
      3803400.,  3816720.,  4456228.,  4472104.,  4606756.,  4623304.,
      3950280.,  3964752.,  3291980.,  3304280.,  2632624.,  2642656.,
      3242008.,  3253712.,  4054470.,  4069380.,  4865924.,  4884152.,
      5675474.,  5697132.,  5829138.,  5851580.,  4978148.,  4997720.,
      4131750.,  4148340.,  3290840.,  3304336.,  3987480.,  4002768.,
      4968390.,  4987780.,  5941124.,  5964728.,  6904786.,  6932716.,
      7058450.,  7087164.,  6010340.,  6035288.,  4973990.,  4995060.,
      3950296.,  3967376.,  4732952.,  4751824.,  5882310.,  5906180.,
      7016324.,  7045304.,  8134098.,  8168300.,  8287762.,  8322748.,
      7042532.,  7072856.,  5816230.,  5841780.,  4609752.,  4630416.,
      5478424.,  5500880.,  6796230.,  6824580.,  8091524.,  8125880.,
      9363410.,  9403884.,  9517074.,  9558332.,  8074724.,  8110424.,
      6658470.,  6688500.,  5269208.,  5293456.,  4246960.,  4267744.,
      5249900.,  5276120.,  6227784.,  6259536.,  7179844.,  7217224.,
      7292740.,  7330792.,  6162696.,  6195600.,  5060780.,  5088440.,
      3987760.,  4010080.,  3117320.,  3135920.,  3835650.,  3859100.,
      4528300.,  4556680.,  5194630.,  5228020.,  5273030.,  5306980.,
      4431820.,  4461160.,  3618850.,  3643500.,  2834760.,  2854640.,
      2118176.,  2134080.,  2589320.,  2609360.,  3036080.,  3060320.,
      3457944.,  3486448.,  3508120.,  3537072.,  2925104.,  2950112.,
      2368520.,  2389520.,  1838880.,  1855808.,  7182112.,  7206208.,
      8905160.,  8935440.,  10598192., 10634720., 12260696., 12303536.,
      12386136., 12429424., 10517936., 10555232., 8681800.,  8713040.,
      6878240.,  6903360.,  8579720.,  8611120.,  10622050., 10661500.,
      12622060., 12669640., 14579110., 14634900., 14720230., 14776580.,
      12479500., 12528040., 10283650., 10324300., 8133320.,  8166000.,
      9760816.,  9800032.,  12063500., 12112760., 14309640., 14369040.,
      16498468., 16568104., 16648996., 16719304., 14087880., 14148432.,
      11586380., 11637080., 9145264.,  9186016.,  7616536.,  7655888.,
      9384390.,  9433860.,  11095940., 11155640., 12750290., 12820332.,
      12903954., 12974780., 10876388., 10937432., 8908710.,  8959860.,
      7001816.,  7042960.,  5740568.,  5775312.,  7062470.,  7106180.,
      8337284.,  8390072.,  9564114.,  9626092.,  9717778.,  9780540.,
      8173028.,  8227160.,  6678950.,  6724340.,  5236440.,  5272976.,
      4323352.,  4353488.,  5313990.,  5351940.,  6266756.,  6312632.,
      7180754.,  7234668.,  7334418.,  7389116.,  6157796.,  6205016.,
      5022630.,  5062260.,  3929816.,  3961744.,  3364888.,  3390416.,
      4138950.,  4171140.,  4884356.,  4923320.,  5600210.,  5646060.,
      5753874.,  5800508.,  4830692.,  4871000.,  3939750.,  3973620.,
      3081944.,  3109264.,  2043312.,  2062048.,  2505580.,  2529240.,
      2946888.,  2975568.,  3366468.,  3400264.,  3479364.,  3513832.,
      2906376.,  2936208.,  2357420.,  2382520.,  1833264.,  1853536.,
      1110280.,  1121712.,  1362690.,  1377180.,  1603756.,  1621384.,
      1832838.,  1853684.,  1911238.,  1932644.,  1593292.,  1611880.,
      1289250.,  1304940.,  999752.,   1012464.,  594464.,   598080.,
      746120.,   750800.,   897968.,   903776.,   1049496.,  1056496.,
      1099672.,  1107120.,  934448.,   941024.,   771080.,   776720.,
      610080.,   614720.,   3594016.,  3605824.,  4481480.,  4496400.,
      5363504.,  5381600.,  6239576.,  6260912.,  6365016.,  6386800.,
      5430704.,  5449568.,  4503880.,  4519760.,  3585056.,  3597888.,
      4524680.,  4540720.,  5630050.,  5650300.,  6723820.,  6748360.,
      7805350.,  7834260.,  7946470.,  7975940.,  6765580.,  6791080.,
      5598850.,  5620300.,  4446920.,  4464240.,  5410864.,  5431648.,
      6718220.,  6744440.,  8005896.,  8037648.,  9273124.,  9310504.,
      9423652.,  9461704.,  8005320.,  8038224.,  6609740.,  6637400.,
      5237680.,  5260000.,  6223896.,  6249936.,  7710150.,  7742980.,
      9166724.,  9206456.,  10592722., 10639468., 10746386., 10793916.,
      9106916.,  9147992.,  7500710.,  7535220.,  5928664.,  5956496.,
      6969368.,  6998992.,  8624070.,  8661380.,  10241924., 10287032.,
      11822034., 11875052., 11975698., 12029500., 10139108., 10185560.,
      8342950.,  8381940.,  6588120.,  6619536.,  7714840.,  7748048.,
      9537990.,  9579780.,  11317124., 11367608., 13051346., 13110636.,
      13205010., 13265084., 11171300., 11223128., 9185190.,  9228660.,
      7247576.,  7282576.,  8460312.,  8497104.,  10451910., 10498180.,
      12392324., 12448184., 14280658., 14346220., 14434322., 14500668.,
      12203492., 12260696., 10027430., 10075380., 7907032.,  7945616.,
      6458800.,  6491872.,  7953260.,  7994840.,  9398088.,  9448272.,
      10792516., 10851400., 10905412., 10964968., 9185544.,  9236880.,
      7518380.,  7561400.,  5904688.,  5939296.,  4673800.,  4702640.,
      5730050.,  5766300.,  6740140.,  6783880.,  7703430.,  7754740.,
      7781830.,  7833700.,  6520780.,  6565480.,  5308450.,  5345900.,
      4145480.,  4175600.,  3133984.,  3158080.,  3818120.,  3848400.,
      4461488.,  4498016.,  5063576.,  5106416.,  5113752.,  5157040.,
      4252208.,  4289504.,  3433480.,  3464720.,  2658080.,  2683200.};
  const std::array<int, 4> in_shape = {{3, 10, 8, 4}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x10x8x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5675474.,  5697132.,  5829138.,  5851580.,  6904786.,  6932716.,
      7058450.,  7087164.,  8134098.,  8168300.,  8287762.,  8322748.,
      9363410.,  9403884.,  9517074.,  9558332.,  12750290., 12820332.,
      12903954., 12974780., 9564114.,  9626092.,  9717778.,  9780540.,
      7180754.,  7234668.,  7334418.,  7389116.,  5600210.,  5646060.,
      5753874.,  5800508.,  10592722., 10639468., 10746386., 10793916.,
      11822034., 11875052., 11975698., 12029500., 13051346., 13110636.,
      13205010., 13265084., 14280658., 14346220., 14434322., 14500668.};
  const std::array<int, 4> in_shape = {{3, 10, 8, 4}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x10x8x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      505888.,  509504.,  513120.,  516736.,  675144.,  679824.,  684504.,
      689184.,  841648.,  847456.,  853264.,  859072.,  1004376., 1011376.,
      1018376., 1025376., 1066392., 1073840., 1081288., 1088736., 1029552.,
      1036128., 1042704., 1049280., 874120.,  879760.,  885400.,  891040.,
      730656.,  735296.,  739936.,  744576.,  790120.,  795920.,  801720.,
      807520.,  1043882., 1051332., 1058782., 1066232., 1289212., 1298392.,
      1307572., 1316752., 1526366., 1537356., 1548346., 1559336., 1599150.,
      1610700., 1622250., 1633800., 1514620., 1524760., 1534900., 1545040.,
      1287994., 1296644., 1305294., 1313944., 1082856., 1089936., 1097016.,
      1104096., 1118000., 1126496., 1134992., 1143488., 1467820., 1478680.,
      1489540., 1500400., 1833992., 1847312., 1860632., 1873952., 2183748.,
      2199624., 2215500., 2231376., 2275236., 2291784., 2308332., 2324880.,
      2121992., 2136464., 2150936., 2165408., 1802892., 1815192., 1827492.,
      1839792., 1514544., 1524576., 1534608., 1544640., 1528440., 1540144.,
      1551848., 1563552., 1985358., 2000268., 2015178., 2030088., 2479572.,
      2497800., 2516028., 2534256., 2945290., 2966948., 2988606., 3010264.,
      3042938., 3065380., 3087822., 3110264., 2796372., 2815944., 2835516.,
      2855088., 2364030., 2380620., 2397210., 2413800., 1975544., 1989040.,
      2002536., 2016032., 1967224., 1982512., 1997800., 2013088., 2530766.,
      2550156., 2569546., 2588936., 3150036., 3173640., 3197244., 3220848.,
      3726474., 3754404., 3782334., 3810264., 3824122., 3852836., 3881550.,
      3910264., 3479124., 3504072., 3529020., 3553968., 2929918., 2950988.,
      2972058., 2993128., 2438904., 2455984., 2473064., 2490144., 1689208.,
      1703984., 1718760., 1733536., 2155598., 2174348., 2193098., 2211848.,
      2712532., 2735368., 2758204., 2781040., 3228682., 3255716., 3282750.,
      3309784., 3326330., 3354148., 3381966., 3409784., 2890068., 2914248.,
      2938428., 2962608., 2476926., 2497356., 2517786., 2538216., 2119928.,
      2136496., 2153064., 2169632., 1607800., 1622064., 1636328., 1650592.,
      2091726., 2109836., 2127946., 2146056., 2701012., 2723080., 2745148.,
      2767216., 3271562., 3297700., 3323838., 3349976., 3369210., 3396132.,
      3423054., 3449976., 2989140., 3012552., 3035964., 3059376., 2597374.,
      2617164., 2636954., 2656744., 2259704., 2275760., 2291816., 2307872.,
      1524784., 1537376., 1549968., 1562560., 1814636., 1830616., 1846596.,
      1862576., 2265736., 2285200., 2304664., 2324128., 2681476., 2704520.,
      2727564., 2750608., 2759140., 2782856., 2806572., 2830288., 2303368.,
      2323984., 2344600., 2365216., 1895756., 1913176., 1930596., 1948016.,
      1537840., 1551968., 1566096., 1580224., 1074024., 1084432., 1094840.,
      1105248., 1291882., 1305092., 1318302., 1331512., 1710716., 1726808.,
      1742900., 1758992., 2101406., 2120460., 2139514., 2158568., 2167534.,
      2187148., 2206762., 2226376., 1849596., 1866648., 1883700., 1900752.,
      1571834., 1586244., 1600654., 1615064., 1335528., 1347216., 1358904.,
      1370592., 1078816., 1086528., 1094240., 1101952., 1293000., 1302800.,
      1312600., 1322400., 1485488., 1497440., 1509392., 1521344., 1656792.,
      1670960., 1685128., 1699296., 1707544., 1722160., 1736776., 1751392.,
      1384112., 1396832., 1409552., 1422272., 1089032., 1099792., 1110552.,
      1121312., 823328.,  832064.,  840800.,  849536.,  1058848., 1066560.,
      1074272., 1081984., 1390920., 1400720., 1410520., 1420320., 1703856.,
      1715808., 1727760., 1739712., 1996632., 2010800., 2024968., 2039136.,
      2058648., 2073264., 2087880., 2102496., 1924528., 1937248., 1949968.,
      1962688., 1622664., 1633424., 1644184., 1654944., 1349152., 1357888.,
      1366624., 1375360., 1391208., 1402128., 1413048., 1423968., 1809578.,
      1823428., 1837278., 1851128., 2264572., 2281432., 2298292., 2315152.,
      2690910., 2710860., 2730810., 2750760., 2763694., 2784204., 2804714.,
      2825224., 2563708., 2581528., 2599348., 2617168., 2176570., 2191620.,
      2206670., 2221720., 1831400., 1843600., 1855800., 1868000., 1914672.,
      1929312., 1943952., 1958592., 2467756., 2486296., 2504836., 2523376.,
      3078152., 3100688., 3123224., 3145760., 3647556., 3674184., 3700812.,
      3727440., 3739044., 3766344., 3793644., 3820944., 3415304., 3438992.,
      3462680., 3486368., 2884748., 2904728., 2924708., 2944688., 2409520.,
      2425696., 2441872., 2458048., 1689208., 1703984., 1718760., 1733536.,
      2155598., 2174348., 2193098., 2211848., 2712532., 2735368., 2758204.,
      2781040., 3228682., 3255716., 3282750., 3309784., 3326330., 3354148.,
      3381966., 3409784., 2890068., 2914248., 2938428., 2962608., 2476926.,
      2497356., 2517786., 2538216., 2119928., 2136496., 2153064., 2169632.,
      1607800., 1622064., 1636328., 1650592., 2091726., 2109836., 2127946.,
      2146056., 2701012., 2723080., 2745148., 2767216., 3271562., 3297700.,
      3323838., 3349976., 3369210., 3396132., 3423054., 3449976., 2989140.,
      3012552., 3035964., 3059376., 2597374., 2617164., 2636954., 2656744.,
      2259704., 2275760., 2291816., 2307872., 1723000., 1736752., 1750504.,
      1764256., 2077006., 2094476., 2111946., 2129416., 2591188., 2612488.,
      2633788., 2655088., 3068682., 3093924., 3119166., 3144408., 3166330.,
      3192356., 3218382., 3244408., 2727764., 2750408., 2773052., 2795696.,
      2242686., 2261836., 2280986., 2300136., 1809656., 1825200., 1840744.,
      1856288., 1510520., 1523760., 1537000., 1550240., 1849294., 1866124.,
      1882954., 1899784., 2383060., 2403592., 2424124., 2444656., 2882186.,
      2906532., 2930878., 2955224., 2979834., 3004964., 3030094., 3055224.,
      2630228., 2652104., 2673980., 2695856., 2199294., 2217804., 2236314.,
      2254824., 1818360., 1833392., 1848424., 1863456., 1379376., 1389920.,
      1400464., 1411008., 1702508., 1715928., 1729348., 1742768., 1998472.,
      2014864., 2031256., 2047648., 2267268., 2286728., 2306188., 2325648.,
      2344932., 2365064., 2385196., 2405328., 1954184., 1971728., 1989272.,
      2006816., 1603404., 1618264., 1633124., 1647984., 1294128., 1306208.,
      1318288., 1330368., 667496.,  674832.,  682168.,  689504.,  863594.,
      872964.,  882334.,  891704.,  1076348., 1087832., 1099316., 1110800.,
      1273246., 1286924., 1300602., 1314280., 1339374., 1353612., 1367850.,
      1382088., 1157884., 1170328., 1182772., 1195216., 1004282., 1014852.,
      1025422., 1035992., 879848.,  888464.,  897080.,  905696.,  460320.,
      463936.,  467552.,  471168.,  560840.,  565520.,  570200.,  574880.,
      721584.,  727392.,  733200.,  739008.,  877528.,  884528.,  891528.,
      898528.,  928280.,  935728.,  943176.,  950624.,  784048.,  790624.,
      797200.,  803776.,  651784.,  657424.,  663064.,  668704.,  532512.,
      537152.,  541792.,  546432.,  1611808., 1623616., 1635424., 1647232.,
      2106696., 2121616., 2136536., 2151456., 2566064., 2584160., 2602256.,
      2620352., 2988888., 3010224., 3031560., 3052896., 3050904., 3072688.,
      3094472., 3116256., 2819504., 2838368., 2857232., 2876096., 2371208.,
      2387088., 2402968., 2418848., 1967648., 1980480., 1993312., 2006144.,
      1275496., 1287440., 1299384., 1311328., 1654698., 1669828., 1684958.,
      1700088., 2131964., 2150360., 2168756., 2187152., 2576478., 2598220.,
      2619962., 2641704., 2649262., 2671564., 2693866., 2716168., 2340988.,
      2360344., 2379700., 2399056., 2046266., 2062596., 2078926., 2095256.,
      1797608., 1810832., 1824056., 1837280., 1474352., 1486944., 1499536.,
      1512128., 1937836., 1953816., 1969796., 1985776., 2532360., 2551824.,
      2571288., 2590752., 3094084., 3117128., 3140172., 3163216., 3185572.,
      3209288., 3233004., 3256720., 2853128., 2873744., 2894360., 2914976.,
      2502284., 2519704., 2537124., 2554544., 2198576., 2212704., 2226832.,
      2240960., 1723000., 1736752., 1750504., 1764256., 2077006., 2094476.,
      2111946., 2129416., 2591188., 2612488., 2633788., 2655088., 3068682.,
      3093924., 3119166., 3144408., 3166330., 3192356., 3218382., 3244408.,
      2727764., 2750408., 2773052., 2795696., 2242686., 2261836., 2280986.,
      2300136., 1809656., 1825200., 1840744., 1856288., 1510520., 1523760.,
      1537000., 1550240., 1849294., 1866124., 1882954., 1899784., 2383060.,
      2403592., 2424124., 2444656., 2882186., 2906532., 2930878., 2955224.,
      2979834., 3004964., 3030094., 3055224., 2630228., 2652104., 2673980.,
      2695856., 2199294., 2217804., 2236314., 2254824., 1818360., 1833392.,
      1848424., 1863456., 1756792., 1769520., 1782248., 1794976., 2195022.,
      2211212., 2227402., 2243592., 2600916., 2620680., 2640444., 2660208.,
      2974218., 2997668., 3021118., 3044568., 3071866., 3096100., 3120334.,
      3144568., 2696532., 2717640., 2738748., 2759856., 2205054., 2222924.,
      2240794., 2258664., 1761528., 1776048., 1790568., 1805088., 1413240.,
      1425456., 1437672., 1449888., 1803470., 1819020., 1834570., 1850120.,
      2196180., 2215176., 2234172., 2253168., 2558346., 2580900., 2603454.,
      2626008., 2655994., 2679332., 2702670., 2726008., 2402388., 2422728.,
      2443068., 2463408., 1997822., 2015052., 2032282., 2049512., 1639160.,
      1653168., 1667176., 1681184., 971824.,  980320.,  988816.,  997312.,
      1262700., 1273560., 1284420., 1295280., 1600136., 1613456., 1626776.,
      1640096., 1918596., 1934472., 1950348., 1966224., 1996260., 2012808.,
      2029356., 2045904., 1736072., 1750544., 1765016., 1779488., 1507660.,
      1519960., 1532260., 1544560., 1312560., 1322592., 1332624., 1342656.,
      912232.,  920592.,  928952.,  937312.,  1208426., 1219076., 1229726.,
      1240376., 1582716., 1595736., 1608756., 1621776., 1937054., 1952524.,
      1967994., 1983464., 2003182., 2019212., 2035242., 2051272., 1770748.,
      1784728., 1798708., 1812688., 1570298., 1582148., 1593998., 1605848.,
      1403112., 1412752., 1422392., 1432032., 947744.,  955456.,  963168.,
      970880.,  1129160., 1138960., 1148760., 1158560., 1419952., 1431904.,
      1443856., 1455808., 1689560., 1703728., 1717896., 1732064., 1740312.,
      1754928., 1769544., 1784160., 1449648., 1462368., 1475088., 1487808.,
      1187336., 1198096., 1208856., 1219616., 954400.,  963136.,  971872.,
      980608.};
  const std::array<int, 4> in_shape = {{3, 10, 8, 4}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 256.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x10x8x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4942602.,  4964260.,  4985918.,  5007576.,  5109882.,  5132324.,
      5154766.,  5177208.,  6280842.,  6308772.,  6336702.,  6364632.,
      6448122.,  6476836.,  6505550.,  6534264.,  7619082.,  7653284.,
      7687486.,  7721688.,  7786362.,  7821348.,  7856334.,  7891320.,
      8957322.,  8997796.,  9038270.,  9078744.,  9124602.,  9165860.,
      9207118.,  9248376.,  15242762., 15312804., 15382846., 15452888.,
      15410042., 15480868., 15551694., 15622520., 15104394., 15166372.,
      15228350., 15290328., 15271674., 15334436., 15397198., 15459960.,
      12377354., 12431268., 12485182., 12539096., 12544634., 12599332.,
      12654030., 12708728., 8110218.,  8156068.,  8201918.,  8247768.,
      8277498.,  8324132.,  8370766.,  8417400.,  10295562., 10342308.,
      10389054., 10435800., 10462842., 10510372., 10557902., 10605432.,
      11633802., 11686820., 11739838., 11792856., 11801082., 11854884.,
      11908686., 11962488., 12972042., 13031332., 13090622., 13149912.,
      13139322., 13199396., 13259470., 13319544., 14310282., 14375844.,
      14441406., 14506968., 14477562., 14543908., 14610254., 14676600.};
  const std::array<int, 4> in_shape = {{3, 10, 8, 4}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x10x9x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      10752.,  13660.,  16648.,  19712.,  20706.,  21700.,  18760.,  15760.,
      12704.,  16280.,  20525.,  24830.,  29190.,  30310.,  31430.,  27020.,
      22575.,  18100.,  22440.,  28140.,  33864.,  39606.,  40803.,  42000.,
      35952.,  29910.,  23880.,  28980.,  36190.,  43372.,  50519.,  51744.,
      52969.,  45178.,  37450.,  29792.,  35658.,  44380.,  53011.,  61544.,
      62769.,  63994.,  54439.,  45010.,  35714.,  42336.,  52570.,  62650.,
      72569.,  73794.,  75019.,  63700.,  52570.,  41636.,  49014.,  60760.,
      72289.,  83594.,  84819.,  86044.,  72961.,  60130.,  47558.,  38112.,
      47085.,  55824.,  64323.,  65226.,  66129.,  55860.,  45855.,  36120.,
      28090.,  34550.,  40775.,  46760.,  47390.,  48020.,  40355.,  32950.,
      25810.,  19200.,  23470.,  27520.,  31346.,  31752.,  32158.,  26824.,
      21730.,  16880.,  64032.,  79360.,  94408.,  109172., 110166., 111160.,
      94360.,  77860.,  61664.,  76580.,  94775.,  112580., 129990., 131110.,
      132230., 112070., 92325.,  73000.,  87240.,  107790., 127824., 147336.,
      148533., 149730., 126672., 104160., 82200.,  95760.,  118090., 139762.,
      160769., 161994., 163219., 137788., 113050., 89012.,  102438., 126280.,
      149401., 171794., 173019., 174244., 147049., 120610., 94934.,  109116.,
      134470., 159040., 182819., 184044., 185269., 156310., 128170., 100856.,
      115794., 142660., 168679., 193844., 195069., 196294., 165571., 135730.,
      106778., 87792.,  107835., 127104., 145593., 146496., 147399., 123900.,
      101205., 79320.,  63190.,  77300.,  90725.,  103460., 104090., 104720.,
      87605.,  71200.,  55510.,  42240.,  51370.,  59920.,  67886.,  68292.,
      68698.,  57064.,  46030.,  35600.,  117312., 145060., 172168., 198632.,
      199626., 200620., 169960., 139960., 110624., 136880., 169025., 200330.,
      230790., 231910., 233030., 197120., 162075., 127900., 152040., 187440.,
      221784., 255066., 256263., 257460., 217392., 178410., 140520., 162540.,
      199990., 236152., 271019., 272244., 273469., 230398., 188650., 148232.,
      169218., 208180., 245791., 282044., 283269., 284494., 239659., 196210.,
      154154., 175896., 216370., 255430., 293069., 294294., 295519., 248920.,
      203770., 160076., 182574., 224560., 265069., 304094., 305319., 306544.,
      258181., 211330., 165998., 137472., 168585., 198384., 226863., 227766.,
      228669., 191940., 156555., 122520., 98290.,  120050., 140675., 160160.,
      160790., 161420., 134855., 109450., 85210.,  65280.,  79270.,  92320.,
      104426., 104832., 105238., 87304.,  70330.,  54320.};
  const std::array<int, 4> in_shape = {{3, 10, 9, 1}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x10x9x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      50519.,  51744.,  52969.,  61544.,  62769.,  63994.,  72569.,  73794.,
      75019.,  83594.,  84819.,  86044.,  160769., 161994., 163219., 171794.,
      173019., 174244., 182819., 184044., 185269., 193844., 195069., 196294.,
      271019., 272244., 273469., 282044., 283269., 284494., 293069., 294294.,
      295519., 304094., 305319., 306544.};
  const std::array<int, 4> in_shape = {{3, 10, 9, 1}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x10x9x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      21248.,  21504.,  26990.,  27320.,  32888.,  33296.,  38934.,  39424.,
      40894.,  41412.,  42854.,  43400.,  37040.,  37520.,  31110.,  31520.,
      25072.,  25408.,  32150.,  32560.,  40525.,  41050.,  49015.,  49660.,
      57610.,  58380.,  59815.,  60620.,  62020.,  62860.,  53305.,  54040.,
      44525.,  45150.,  35690.,  36200.,  44280.,  44880.,  55515.,  56280.,
      66792.,  67728.,  78099.,  79212.,  80451.,  81606.,  82803.,  84000.,
      70860.,  71904.,  58935.,  59820.,  47040.,  47760.,  57134.,  57960.,
      71330.,  72380.,  85463.,  86744.,  99519.,  101038., 101920., 103488.,
      104321., 105938., 88949.,  90356.,  73710.,  74900.,  58618.,  59584.,
      70238.,  71316.,  87395.,  88760.,  104363., 106022., 121128., 123088.,
      123529., 125538., 125930., 127988., 107093., 108878., 88515.,  90020.,
      70210.,  71428.,  83342.,  84672.,  103460., 105140., 123263., 125300.,
      142737., 145138., 145138., 147588., 147539., 150038., 125237., 127400.,
      103320., 105140., 81802.,  83272.,  96446.,  98028.,  119525., 121520.,
      142163., 144578., 164346., 167188., 166747., 169638., 169148., 172088.,
      143381., 145922., 118125., 120260., 93394.,  95116.,  74760.,  76224.,
      92325.,  94170.,  109416., 111648., 126021., 128646., 127785., 130452.,
      129549., 132258., 109380., 111720., 89745.,  91710.,  70656.,  72240.,
      54870.,  56180.,  67450.,  69100.,  79555.,  81550.,  91175.,  93520.,
      92400.,  94780.,  93625.,  96040.,  78625.,  80710.,  64150.,  65900.,
      50210.,  51620.,  37280.,  38400.,  45530.,  46940.,  53336.,  55040.,
      60690.,  62692.,  61474.,  63504.,  62258.,  64316.,  51872.,  53648.,
      41970.,  43460.,  32560.,  33760.,  126368., 128064., 156590., 158720.,
      186248., 188816., 215334., 218344., 217294., 220332., 219254., 222320.,
      186080., 188720., 153510., 155720., 121552., 123328., 150950., 153160.,
      186775., 189550., 221815., 225160., 256060., 259980., 258265., 262220.,
      260470., 264460., 220705., 224140., 181775., 184650., 143690., 146000.,
      171720., 174480., 212115., 215580., 251472., 255648., 289779., 294672.,
      292131., 297066., 294483., 299460., 249060., 253344., 204735., 208320.,
      161520., 164400., 188174., 191520., 231980., 236180., 274463., 279524.,
      315609., 321538., 318010., 323988., 320411., 326438., 270389., 275576.,
      221760., 226100., 174538., 178024., 201278., 204876., 248045., 252560.,
      293363., 298802., 337218., 343588., 339619., 346038., 342020., 348488.,
      288533., 294098., 236565., 241220., 186130., 189868., 214382., 218232.,
      264110., 268940., 312263., 318080., 358827., 365638., 361228., 368088.,
      363629., 370538., 306677., 312620., 251370., 256340., 197722., 201712.,
      227486., 231588., 280175., 285320., 331163., 337358., 380436., 387688.,
      382837., 390138., 385238., 392588., 324821., 331142., 266175., 271460.,
      209314., 213556., 171960., 175584., 211125., 215670., 248736., 254208.,
      284781., 291186., 286545., 292992., 288309., 294798., 242220., 247800.,
      197745., 202410., 154896., 158640., 123270., 126380., 150700., 154600.,
      176755., 181450., 201425., 206920., 202650., 208180., 203875., 209440.,
      170425., 175210., 138400., 142400., 107810., 111020., 81920.,  84480.,
      99530.,  102740., 115976., 119840., 131250., 135772., 132034., 136584.,
      132818., 137396., 110192., 114128., 88770.,  92060.,  68560.,  71200.,
      231488., 234624., 286190., 290120., 339608., 344336., 391734., 397264.,
      393694., 399252., 395654., 401240., 335120., 339920., 275910., 279920.,
      218032., 221248., 269750., 273760., 333025., 338050., 394615., 400660.,
      454510., 461580., 456715., 463820., 458920., 466060., 388105., 394240.,
      319025., 324150., 251690., 255800., 299160., 304080., 368715., 374880.,
      436152., 443568., 501459., 510132., 503811., 512526., 506163., 514920.,
      427260., 434784., 350535., 356820., 276000., 281040., 319214., 325080.,
      392630., 399980., 463463., 472304., 531699., 542038., 534100., 544488.,
      536501., 546938., 451829., 460796., 369810., 377300., 290458., 296464.,
      332318., 338436., 408695., 416360., 482363., 491582., 553308., 564088.,
      555709., 566538., 558110., 568988., 469973., 479318., 384615., 392420.,
      302050., 308308., 345422., 351792., 424760., 432740., 501263., 510860.,
      574917., 586138., 577318., 588588., 579719., 591038., 488117., 497840.,
      399420., 407540., 313642., 320152., 358526., 365148., 440825., 449120.,
      520163., 530138., 596526., 608188., 598927., 610638., 601328., 613088.,
      506261., 516362., 414225., 422660., 325234., 331996., 269160., 274944.,
      329925., 337170., 388056., 396768., 443541., 453726., 445305., 455532.,
      447069., 457338., 375060., 383880., 305745., 313110., 239136., 245040.,
      191670., 196580., 233950., 240100., 273955., 281350., 311675., 320320.,
      312900., 321580., 314125., 322840., 262225., 269710., 212650., 218900.,
      165410., 170420., 126560., 130560., 153530., 158540., 178616., 184640.,
      201810., 208852., 202594., 209664., 203378., 210476., 168512., 174608.,
      135570., 140660., 104560., 108640.};
  const std::array<int, 4> in_shape = {{3, 10, 9, 1}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x10x9x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      99519.,  101038., 101920., 103488., 104321., 105938., 121128., 123088.,
      123529., 125538., 125930., 127988., 142737., 145138., 145138., 147588.,
      147539., 150038., 164346., 167188., 166747., 169638., 169148., 172088.,
      315609., 321538., 318010., 323988., 320411., 326438., 337218., 343588.,
      339619., 346038., 342020., 348488., 358827., 365638., 361228., 368088.,
      363629., 370538., 380436., 387688., 382837., 390138., 385238., 392588.,
      531699., 542038., 534100., 544488., 536501., 546938., 553308., 564088.,
      555709., 566538., 558110., 568988., 574917., 586138., 577318., 588588.,
      579719., 591038., 596526., 608188., 598927., 610638., 601328., 613088.};
  const std::array<int, 4> in_shape = {{3, 10, 9, 1}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x10x9x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      42240.,   42496.,   42752.,   43008.,   53650.,   53980.,   54310.,
      54640.,   65368.,   65776.,   66184.,   66592.,   77378.,   77868.,
      78358.,   78848.,   81270.,   81788.,   82306.,   82824.,   85162.,
      85708.,   86254.,   86800.,   73600.,   74080.,   74560.,   75040.,
      61810.,   62220.,   62630.,   63040.,   49808.,   50144.,   50480.,
      50816.,   63890.,   64300.,   64710.,   65120.,   80525.,   81050.,
      81575.,   82100.,   97385.,   98030.,   98675.,   99320.,   114450.,
      115220.,  115990.,  116760.,  118825.,  119630.,  120435.,  121240.,
      123200.,  124040.,  124880.,  125720.,  105875.,  106610.,  107345.,
      108080.,  88425.,   89050.,   89675.,   90300.,   70870.,   71380.,
      71890.,   72400.,   87960.,   88560.,   89160.,   89760.,   110265.,
      111030.,  111795.,  112560.,  132648.,  133584.,  134520.,  135456.,
      155085.,  156198.,  157311.,  158424.,  159747.,  160902.,  162057.,
      163212.,  164409.,  165606.,  166803.,  168000.,  140676.,  141720.,
      142764.,  143808.,  116985.,  117870.,  118755.,  119640.,  93360.,
      94080.,   94800.,   95520.,   113442.,  114268.,  115094.,  115920.,
      141610.,  142660.,  143710.,  144760.,  169645.,  170926.,  172207.,
      173488.,  197519.,  199038.,  200557.,  202076.,  202272.,  203840.,
      205408.,  206976.,  207025.,  208642.,  210259.,  211876.,  176491.,
      177898.,  179305.,  180712.,  146230.,  147420.,  148610.,  149800.,
      116270.,  117236.,  118202.,  119168.,  139398.,  140476.,  141554.,
      142632.,  173425.,  174790.,  176155.,  177520.,  207067.,  208726.,
      210385.,  212044.,  240296.,  242256.,  244216.,  246176.,  245049.,
      247058.,  249067.,  251076.,  249802.,  251860.,  253918.,  255976.,
      212401.,  214186.,  215971.,  217756.,  175525.,  177030.,  178535.,
      180040.,  139202.,  140420.,  141638.,  142856.,  165354.,  166684.,
      168014.,  169344.,  205240.,  206920.,  208600.,  210280.,  244489.,
      246526.,  248563.,  250600.,  283073.,  285474.,  287875.,  290276.,
      287826.,  290276.,  292726.,  295176.,  292579.,  295078.,  297577.,
      300076.,  248311.,  250474.,  252637.,  254800.,  204820.,  206640.,
      208460.,  210280.,  162134.,  163604.,  165074.,  166544.,  191310.,
      192892.,  194474.,  196056.,  237055.,  239050.,  241045.,  243040.,
      281911.,  284326.,  286741.,  289156.,  325850.,  328692.,  331534.,
      334376.,  330603.,  333494.,  336385.,  339276.,  335356.,  338296.,
      341236.,  344176.,  284221.,  286762.,  289303.,  291844.,  234115.,
      236250.,  238385.,  240520.,  185066.,  186788.,  188510.,  190232.,
      148056.,  149520.,  150984.,  152448.,  182805.,  184650.,  186495.,
      188340.,  216600.,  218832.,  221064.,  223296.,  249417.,  252042.,
      254667.,  257292.,  252903.,  255570.,  258237.,  260904.,  256389.,
      259098.,  261807.,  264516.,  216420.,  218760.,  221100.,  223440.,
      177525.,  179490.,  181455.,  183420.,  139728.,  141312.,  142896.,
      144480.,  108430.,  109740.,  111050.,  112360.,  133250.,  134900.,
      136550.,  138200.,  157115.,  159110.,  161105.,  163100.,  180005.,
      182350.,  184695.,  187040.,  182420.,  184800.,  187180.,  189560.,
      184835.,  187250.,  189665.,  192080.,  155165.,  157250.,  159335.,
      161420.,  126550.,  128300.,  130050.,  131800.,  99010.,   100420.,
      101830.,  103240.,  73440.,   74560.,   75680.,   76800.,   89650.,
      91060.,   92470.,   93880.,   104968.,  106672.,  108376.,  110080.,
      119378.,  121380.,  123382.,  125384.,  120918.,  122948.,  124978.,
      127008.,  122458.,  124516.,  126574.,  128632.,  101968.,  103744.,
      105520.,  107296.,  82450.,   83940.,   85430.,   86920.,   63920.,
      65120.,   66320.,   67520.,   251040.,  252736.,  254432.,  256128.,
      311050.,  313180.,  315310.,  317440.,  369928.,  372496.,  375064.,
      377632.,  427658.,  430668.,  433678.,  436688.,  431550.,  434588.,
      437626.,  440664.,  435442.,  438508.,  441574.,  444640.,  369520.,
      372160.,  374800.,  377440.,  304810.,  307020.,  309230.,  311440.,
      241328.,  243104.,  244880.,  246656.,  299690.,  301900.,  304110.,
      306320.,  370775.,  373550.,  376325.,  379100.,  440285.,  443630.,
      446975.,  450320.,  508200.,  512120.,  516040.,  519960.,  512575.,
      516530.,  520485.,  524440.,  516950.,  520940.,  524930.,  528920.,
      437975.,  441410.,  444845.,  448280.,  360675.,  363550.,  366425.,
      369300.,  285070.,  287380.,  289690.,  292000.,  340680.,  343440.,
      346200.,  348960.,  420765.,  424230.,  427695.,  431160.,  498768.,
      502944.,  507120.,  511296.,  574665.,  579558.,  584451.,  589344.,
      579327.,  584262.,  589197.,  594132.,  583989.,  588966.,  593943.,
      598920.,  493836.,  498120.,  502404.,  506688.,  405885.,  409470.,
      413055.,  416640.,  320160.,  323040.,  325920.,  328800.,  373002.,
      376348.,  379694.,  383040.,  459760.,  463960.,  468160.,  472360.,
      543865.,  548926.,  553987.,  559048.,  625289.,  631218.,  637147.,
      643076.,  630042.,  636020.,  641998.,  647976.,  634795.,  640822.,
      646849.,  652876.,  535591.,  540778.,  545965.,  551152.,  439180.,
      443520.,  447860.,  452200.,  345590.,  349076.,  352562.,  356048.,
      398958.,  402556.,  406154.,  409752.,  491575.,  496090.,  500605.,
      505120.,  581287.,  586726.,  592165.,  597604.,  668066.,  674436.,
      680806.,  687176.,  672819.,  679238.,  685657.,  692076.,  677572.,
      684040.,  690508.,  696976.,  571501.,  577066.,  582631.,  588196.,
      468475.,  473130.,  477785.,  482440.,  368522.,  372260.,  375998.,
      379736.,  424914.,  428764.,  432614.,  436464.,  523390.,  528220.,
      533050.,  537880.,  618709.,  624526.,  630343.,  636160.,  710843.,
      717654.,  724465.,  731276.,  715596.,  722456.,  729316.,  736176.,
      720349.,  727258.,  734167.,  741076.,  607411.,  613354.,  619297.,
      625240.,  497770.,  502740.,  507710.,  512680.,  391454.,  395444.,
      399434.,  403424.,  450870.,  454972.,  459074.,  463176.,  555205.,
      560350.,  565495.,  570640.,  656131.,  662326.,  668521.,  674716.,
      753620.,  760872.,  768124.,  775376.,  758373.,  765674.,  772975.,
      780276.,  763126.,  770476.,  777826.,  785176.,  643321.,  649642.,
      655963.,  662284.,  527065.,  532350.,  537635.,  542920.,  414386.,
      418628.,  422870.,  427112.,  340296.,  343920.,  347544.,  351168.,
      417705.,  422250.,  426795.,  431340.,  492000.,  497472.,  502944.,
      508416.,  563157.,  569562.,  575967.,  582372.,  566643.,  573090.,
      579537.,  585984.,  570129.,  576618.,  583107.,  589596.,  478860.,
      484440.,  490020.,  495600.,  390825.,  395490.,  400155.,  404820.,
      306048.,  309792.,  313536.,  317280.,  243430.,  246540.,  249650.,
      252760.,  297500.,  301400.,  305300.,  309200.,  348815.,  353510.,
      358205.,  362900.,  397355.,  402850.,  408345.,  413840.,  399770.,
      405300.,  410830.,  416360.,  402185.,  407750.,  413315.,  418880.,
      336065.,  340850.,  345635.,  350420.,  272800.,  276800.,  280800.,
      284800.,  212410.,  215620.,  218830.,  222040.,  161280.,  163840.,
      166400.,  168960.,  195850.,  199060.,  202270.,  205480.,  228088.,
      231952.,  235816.,  239680.,  257978.,  262500.,  267022.,  271544.,
      259518.,  264068.,  268618.,  273168.,  261058.,  265636.,  270214.,
      274792.,  216448.,  220384.,  224320.,  228256.,  174250.,  177540.,
      180830.,  184120.,  134480.,  137120.,  139760.,  142400.,  459840.,
      462976.,  466112.,  469248.,  568450.,  572380.,  576310.,  580240.,
      674488.,  679216.,  683944.,  688672.,  777938.,  783468.,  788998.,
      794528.,  781830.,  787388.,  792946.,  798504.,  785722.,  791308.,
      796894.,  802480.,  665440.,  670240.,  675040.,  679840.,  547810.,
      551820.,  555830.,  559840.,  432848.,  436064.,  439280.,  442496.,
      535490.,  539500.,  543510.,  547520.,  661025.,  666050.,  671075.,
      676100.,  783185.,  789230.,  795275.,  801320.,  901950.,  909020.,
      916090.,  923160.,  906325.,  913430.,  920535.,  927640.,  910700.,
      917840.,  924980.,  932120.,  770075.,  776210.,  782345.,  788480.,
      632925.,  638050.,  643175.,  648300.,  499270.,  503380.,  507490.,
      511600.,  593400.,  598320.,  603240.,  608160.,  731265.,  737430.,
      743595.,  749760.,  864888.,  872304.,  879720.,  887136.,  994245.,
      1002918., 1011591., 1020264., 998907.,  1007622., 1016337., 1025052.,
      1003569., 1012326., 1021083., 1029840., 846996.,  854520.,  862044.,
      869568.,  694785.,  701070.,  707355.,  713640.,  546960.,  552000.,
      557040.,  562080.,  632562.,  638428.,  644294.,  650160.,  777910.,
      785260.,  792610.,  799960.,  918085.,  926926.,  935767.,  944608.,
      1053059., 1063398., 1073737., 1084076., 1057812., 1068200., 1078588.,
      1088976., 1062565., 1073002., 1083439., 1093876., 894691.,  903658.,
      912625.,  921592.,  732130.,  739620.,  747110.,  754600.,  574910.,
      580916.,  586922.,  592928.,  658518.,  664636.,  670754.,  676872.,
      809725.,  817390.,  825055.,  832720.,  955507.,  964726.,  973945.,
      983164.,  1095836., 1106616., 1117396., 1128176., 1100589., 1111418.,
      1122247., 1133076., 1105342., 1116220., 1127098., 1137976., 930601.,
      939946.,  949291.,  958636.,  761425.,  769230.,  777035.,  784840.,
      597842.,  604100.,  610358.,  616616.,  684474.,  690844.,  697214.,
      703584.,  841540.,  849520.,  857500.,  865480.,  992929.,  1002526.,
      1012123., 1021720., 1138613., 1149834., 1161055., 1172276., 1143366.,
      1154636., 1165906., 1177176., 1148119., 1159438., 1170757., 1182076.,
      966511.,  976234.,  985957.,  995680.,  790720.,  798840.,  806960.,
      815080.,  620774.,  627284.,  633794.,  640304.,  710430.,  717052.,
      723674.,  730296.,  873355.,  881650.,  889945.,  898240.,  1030351.,
      1040326., 1050301., 1060276., 1181390., 1193052., 1204714., 1216376.,
      1186143., 1197854., 1209565., 1221276., 1190896., 1202656., 1214416.,
      1226176., 1002421., 1012522., 1022623., 1032724., 820015.,  828450.,
      836885.,  845320.,  643706.,  650468.,  657230.,  663992.,  532536.,
      538320.,  544104.,  549888.,  652605.,  659850.,  667095.,  674340.,
      767400.,  776112.,  784824.,  793536.,  876897.,  887082.,  897267.,
      907452.,  880383.,  890610.,  900837.,  911064.,  883869.,  894138.,
      904407.,  914676.,  741300.,  750120.,  758940.,  767760.,  604125.,
      611490.,  618855.,  626220.,  472368.,  478272.,  484176.,  490080.,
      378430.,  383340.,  388250.,  393160.,  461750.,  467900.,  474050.,
      480200.,  540515.,  547910.,  555305.,  562700.,  614705.,  623350.,
      631995.,  640640.,  617120.,  625800.,  634480.,  643160.,  619535.,
      628250.,  636965.,  645680.,  516965.,  524450.,  531935.,  539420.,
      419050.,  425300.,  431550.,  437800.,  325810.,  330820.,  335830.,
      340840.,  249120.,  253120.,  257120.,  261120.,  302050.,  307060.,
      312070.,  317080.,  351208.,  357232.,  363256.,  369280.,  396578.,
      403620.,  410662.,  417704.,  398118.,  405188.,  412258.,  419328.,
      399658.,  406756.,  413854.,  420952.,  330928.,  337024.,  343120.,
      349216.,  266050.,  271140.,  276230.,  281320.,  205040.,  209120.,
      213200.,  217280.};
  const std::array<int, 4> in_shape = {{3, 10, 9, 1}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x10x9x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      197519.,  199038.,  200557.,  202076.,  202272.,  203840.,  205408.,
      206976.,  207025.,  208642.,  210259.,  211876.,  240296.,  242256.,
      244216.,  246176.,  245049.,  247058.,  249067.,  251076.,  249802.,
      251860.,  253918.,  255976.,  283073.,  285474.,  287875.,  290276.,
      287826.,  290276.,  292726.,  295176.,  292579.,  295078.,  297577.,
      300076.,  325850.,  328692.,  331534.,  334376.,  330603.,  333494.,
      336385.,  339276.,  335356.,  338296.,  341236.,  344176.,  625289.,
      631218.,  637147.,  643076.,  630042.,  636020.,  641998.,  647976.,
      634795.,  640822.,  646849.,  652876.,  668066.,  674436.,  680806.,
      687176.,  672819.,  679238.,  685657.,  692076.,  677572.,  684040.,
      690508.,  696976.,  710843.,  717654.,  724465.,  731276.,  715596.,
      722456.,  729316.,  736176.,  720349.,  727258.,  734167.,  741076.,
      753620.,  760872.,  768124.,  775376.,  758373.,  765674.,  772975.,
      780276.,  763126.,  770476.,  777826.,  785176.,  1053059., 1063398.,
      1073737., 1084076., 1057812., 1068200., 1078588., 1088976., 1062565.,
      1073002., 1083439., 1093876., 1095836., 1106616., 1117396., 1128176.,
      1100589., 1111418., 1122247., 1133076., 1105342., 1116220., 1127098.,
      1137976., 1138613., 1149834., 1161055., 1172276., 1143366., 1154636.,
      1165906., 1177176., 1148119., 1159438., 1170757., 1182076., 1181390.,
      1193052., 1204714., 1216376., 1186143., 1197854., 1209565., 1221276.,
      1190896., 1202656., 1214416., 1226176.};
  const std::array<int, 4> in_shape = {{3, 10, 9, 1}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x10x9x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      84336.,   107180.,  130664.,  154756.,  162652.,  170548.,  147464.,
      123900.,  99888.,   128100.,  161525.,  195430.,  229775.,  238665.,
      247555.,  212830.,  177825.,  142580.,  176904.,  221850.,  266988.,
      312270.,  321762.,  331254.,  283548.,  235890.,  188328.,  228732.,
      285635.,  342314.,  398713.,  408415.,  418117.,  356594.,  295575.,
      235116.,  281652.,  350525.,  418670.,  486031.,  495733.,  505435.,
      429926.,  355425.,  281988.,  334572.,  415415.,  495026.,  573349.,
      583051.,  592753.,  503258.,  415275.,  328860.,  387492.,  480305.,
      571382.,  660667.,  670369.,  680071.,  576590.,  475125.,  375732.,
      300888.,  371670.,  440580.,  507570.,  514710.,  521850.,  440724.,
      361710.,  284856.,  221340.,  272175.,  321130.,  368165.,  373135.,
      378105.,  317650.,  259275.,  203020.,  150864.,  184340.,  216056.,
      245980.,  249172.,  252364.,  210392.,  170340.,  132240.,  507696.,
      629180.,  748424.,  865396.,  873292.,  881188.,  747944.,  617100.,
      488688.,  606900.,  751025.,  892030.,  1029875., 1038765., 1047655.,
      887830.,  731325.,  578180.,  690984.,  853650.,  1012188., 1166550.,
      1176042., 1185534., 1002828., 824490.,  650568.,  757932.,  934535.,
      1105874., 1271893., 1281595., 1291297., 1089914., 894075.,  703836.,
      810852.,  999425.,  1182230., 1359211., 1368913., 1378615., 1163246.,
      953925.,  750708.,  863772.,  1064315., 1258586., 1446529., 1456231.,
      1465933., 1236578., 1013775., 797580.,  916692.,  1129205., 1334942.,
      1533847., 1543549., 1553251., 1309910., 1073625., 844452.,  694008.,
      852270.,  1004340., 1150170., 1157310., 1164450., 978564.,  799110.,
      626136.,  498540.,  609675.,  715330.,  815465.,  820435.,  825405.,
      690250.,  560775.,  437020.,  332304.,  403940.,  470936.,  533260.,
      536452.,  539644.,  447992.,  361140.,  279120.,  931056.,  1151180.,
      1366184., 1576036., 1583932., 1591828., 1348424., 1110300., 877488.,
      1085700., 1340525., 1588630., 1829975., 1838865., 1847755., 1562830.,
      1284825., 1013780., 1205064., 1485450., 1757388., 2020830., 2030322.,
      2039814., 1722108., 1413090., 1112808., 1287132., 1583435., 1869434.,
      2145073., 2154775., 2164477., 1823234., 1492575., 1172556., 1340052.,
      1648325., 1945790., 2232391., 2242093., 2251795., 1896566., 1552425.,
      1219428., 1392972., 1713215., 2022146., 2319709., 2329411., 2339113.,
      1969898., 1612275., 1266300., 1445892., 1778105., 2098502., 2407027.,
      2416729., 2426431., 2043230., 1672125., 1313172., 1087128., 1332870.,
      1568100., 1792770., 1799910., 1807050., 1516404., 1236510., 967416.,
      775740.,  947175.,  1109530., 1262765., 1267735., 1272705., 1062850.,
      862275.,  671020.,  513744.,  623540.,  725816.,  820540.,  823732.,
      826924.,  685592.,  551940.,  426000.};
  const std::array<int, 4> in_shape = {{3, 10, 9, 2}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x10x9x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      398713.,  408415.,  418117.,  486031.,  495733.,  505435.,
      573349.,  583051.,  592753.,  660667.,  670369.,  680071.,
      1271893., 1281595., 1291297., 1359211., 1368913., 1378615.,
      1446529., 1456231., 1465933., 1533847., 1543549., 1553251.,
      2145073., 2154775., 2164477., 2232391., 2242093., 2251795.,
      2319709., 2329411., 2339113., 2407027., 2416729., 2426431.};
  const std::array<int, 4> in_shape = {{3, 10, 9, 2}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x10x9x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      167664.,  168672.,  213060.,  214360.,  259720.,  261328.,  307580.,
      309512.,  323260.,  325304.,  338940.,  341096.,  293032.,  294928.,
      246180.,  247800.,  198448.,  199776.,  254580.,  256200.,  320975.,
      323050.,  388310.,  390860.,  456505.,  459550.,  474145.,  477330.,
      491785.,  495110.,  422750.,  425660.,  353175.,  355650.,  283140.,
      285160.,  351432.,  353808.,  440670.,  443700.,  530268.,  533976.,
      620130.,  624540.,  638946.,  643524.,  657762.,  662508.,  562956.,
      567096.,  468270.,  471780.,  373800.,  376656.,  454188.,  457464.,
      567105.,  571270.,  679546.,  684628.,  791399.,  797426.,  810607.,
      816830.,  829815.,  836234.,  707602.,  713188.,  586425.,  591150.,
      466396.,  470232.,  559020.,  563304.,  695625.,  701050.,  830746.,
      837340.,  964271.,  972062.,  983479.,  991466.,  1002687., 1010870.,
      852754.,  859852.,  704865.,  710850.,  559132.,  563976.,  663852.,
      669144.,  824145.,  830830.,  981946.,  990052.,  1137143., 1146698.,
      1156351., 1166102., 1175559., 1185506., 997906.,  1006516., 823305.,
      830550.,  651868.,  657720.,  768684.,  774984.,  952665.,  960610.,
      1133146., 1142764., 1310015., 1321334., 1329223., 1340738., 1348431.,
      1360142., 1143058., 1153180., 941745.,  950250.,  744604.,  751464.,
      595944.,  601776.,  735990.,  743340.,  872268.,  881160.,  1004682.,
      1015140., 1018794., 1029420., 1032906., 1043700., 872124.,  881448.,
      715590.,  723420.,  563400.,  569712.,  437460.,  442680.,  537775.,
      544350.,  634310.,  642260.,  726985.,  736330.,  736785.,  746270.,
      746585.,  756210.,  626990.,  635300.,  511575.,  518550.,  400420.,
      406040.,  297264.,  301728.,  363060.,  368680.,  425320.,  432112.,
      483980.,  491960.,  490252.,  498344.,  496524.,  504728.,  413704.,
      420784.,  334740.,  340680.,  259696.,  264480.,  1008624., 1015392.,
      1249860., 1258360., 1486600., 1496848., 1718780., 1730792., 1734460.,
      1746584., 1750140., 1762376., 1485352., 1495888., 1225380., 1234200.,
      970288.,  977376.,  1204980., 1213800., 1490975., 1502050., 1770710.,
      1784060., 2044105., 2059750., 2061745., 2077530., 2079385., 2095310.,
      1761950., 1775660., 1451175., 1462650., 1147140., 1156360., 1370952.,
      1381968., 1693470., 1707300., 2007708., 2024376., 2313570., 2333100.,
      2332386., 2352084., 2351202., 2371068., 1988556., 2005656., 1634670.,
      1648980., 1289640., 1301136., 1502508., 1515864., 1852305., 1869070.,
      2191546., 2211748., 2520119., 2543786., 2539327., 2563190., 2558535.,
      2582594., 2159122., 2179828., 1770825., 1788150., 1393756., 1407672.,
      1607340., 1621704., 1980825., 1998850., 2342746., 2364460., 2692991.,
      2718422., 2712199., 2737826., 2731407., 2757230., 2304274., 2326492.,
      1889265., 1907850., 1486492., 1501416., 1712172., 1727544., 2109345.,
      2128630., 2493946., 2517172., 2865863., 2893058., 2885071., 2912462.,
      2904279., 2931866., 2449426., 2473156., 2007705., 2027550., 1579228.,
      1595160., 1817004., 1833384., 2237865., 2258410., 2645146., 2669884.,
      3038735., 3067694., 3057943., 3087098., 3077151., 3106502., 2594578.,
      2619820., 2126145., 2147250., 1671964., 1688904., 1373544., 1388016.,
      1686390., 1704540., 1986828., 2008680., 2274762., 2300340., 2288874.,
      2314620., 2302986., 2328900., 1934844., 1957128., 1579590., 1598220.,
      1237320., 1252272., 984660.,  997080.,  1203775., 1219350., 1411910.,
      1430660., 1608985., 1630930., 1618785., 1640870., 1628585., 1650810.,
      1361390., 1380500., 1105575., 1121550., 861220.,  874040.,  654384.,
      664608.,  795060.,  807880.,  926440.,  941872.,  1048460., 1066520.,
      1054732., 1072904., 1061004., 1079288., 880264.,  895984.,  709140.,
      722280.,  547696.,  558240.,  1849584., 1862112., 2286660., 2302360.,
      2713480., 2732368., 3129980., 3152072., 3145660., 3167864., 3161340.,
      3183656., 2677672., 2696848., 2204580., 2220600., 1742128., 1754976.,
      2155380., 2171400., 2660975., 2681050., 3153110., 3177260., 3631705.,
      3659950., 3649345., 3677730., 3666985., 3695510., 3101150., 3125660.,
      2549175., 2569650., 2011140., 2027560., 2390472., 2410128., 2946270.,
      2970900., 3485148., 3514776., 4007010., 4041660., 4025826., 4060644.,
      4044642., 4079628., 3414156., 3444216., 2801070., 2826180., 2205480.,
      2225616., 2550828., 2574264., 3137505., 3166870., 3703546., 3738868.,
      4248839., 4290146., 4268047., 4309550., 4287255., 4328954., 3610642.,
      3646468., 2955225., 2985150., 2321116., 2345112., 2655660., 2680104.,
      3266025., 3296650., 3854746., 3891580., 4421711., 4464782., 4440919.,
      4484186., 4460127., 4503590., 3755794., 3793132., 3073665., 3104850.,
      2413852., 2438856., 2760492., 2785944., 3394545., 3426430., 4005946.,
      4044292., 4594583., 4639418., 4613791., 4658822., 4632999., 4678226.,
      3900946., 3939796., 3192105., 3224550., 2506588., 2532600., 2865324.,
      2891784., 3523065., 3556210., 4157146., 4197004., 4767455., 4814054.,
      4786663., 4833458., 4805871., 4852862., 4046098., 4086460., 3310545.,
      3344250., 2599324., 2626344., 2151144., 2174256., 2636790., 2665740.,
      3101388., 3136200., 3544842., 3585540., 3558954., 3599820., 3573066.,
      3614100., 2997564., 3032808., 2443590., 2473020., 1911240., 1934832.,
      1531860., 1551480., 1869775., 1894350., 2189510., 2219060., 2490985.,
      2525530., 2500785., 2535470., 2510585., 2545410., 2095790., 2125700.,
      1699575., 1724550., 1322020., 1342040., 1011504., 1027488., 1227060.,
      1247080., 1427560., 1451632., 1612940., 1641080., 1619212., 1647464.,
      1625484., 1653848., 1346824., 1371184., 1083540., 1103880., 835696.,
      852000.};
  const std::array<int, 4> in_shape = {{3, 10, 9, 2}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x10x9x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      791399.,  797426.,  810607.,  816830.,  829815.,  836234.,  964271.,
      972062.,  983479.,  991466.,  1002687., 1010870., 1137143., 1146698.,
      1156351., 1166102., 1175559., 1185506., 1310015., 1321334., 1329223.,
      1340738., 1348431., 1360142., 2520119., 2543786., 2539327., 2563190.,
      2558535., 2582594., 2692991., 2718422., 2712199., 2737826., 2731407.,
      2757230., 2865863., 2893058., 2885071., 2912462., 2904279., 2931866.,
      3038735., 3067694., 3057943., 3087098., 3077151., 3106502., 4248839.,
      4290146., 4268047., 4309550., 4287255., 4328954., 4421711., 4464782.,
      4440919., 4484186., 4460127., 4503590., 4594583., 4639418., 4613791.,
      4658822., 4632999., 4678226., 4767455., 4814054., 4786663., 4833458.,
      4805871., 4852862.};
  const std::array<int, 4> in_shape = {{3, 10, 9, 2}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x10x9x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      334320.,  335328.,  336336.,  337344.,  424820.,  426120.,  427420.,
      428720.,  517832.,  519440.,  521048.,  522656.,  613228.,  615160.,
      617092.,  619024.,  644476.,  646520.,  648564.,  650608.,  675724.,
      677880.,  680036.,  682192.,  584168.,  586064.,  587960.,  589856.,
      490740.,  492360.,  493980.,  495600.,  395568.,  396896.,  398224.,
      399552.,  507540.,  509160.,  510780.,  512400.,  639875.,  641950.,
      644025.,  646100.,  774070.,  776620.,  779170.,  781720.,  909965.,
      913010.,  916055.,  919100.,  945105.,  948290.,  951475.,  954660.,
      980245.,  983570.,  986895.,  990220.,  842590.,  845500.,  848410.,
      851320.,  703875.,  706350.,  708825.,  711300.,  564260.,  566280.,
      568300.,  570320.,  700488.,  702864.,  705240.,  707616.,  878310.,
      881340.,  884370.,  887400.,  1056828., 1060536., 1064244., 1067952.,
      1235850., 1240260., 1244670., 1249080., 1273314., 1277892., 1282470.,
      1287048., 1310778., 1315524., 1320270., 1325016., 1121772., 1125912.,
      1130052., 1134192., 933030.,  936540.,  940050.,  943560.,  744744.,
      747600.,  750456.,  753312.,  905100.,  908376.,  911652.,  914928.,
      1130045., 1134210., 1138375., 1142540., 1354010., 1359092., 1364174.,
      1369256., 1576771., 1582798., 1588825., 1594852., 1614991., 1621214.,
      1627437., 1633660., 1653211., 1659630., 1666049., 1672468., 1409618.,
      1415204., 1420790., 1426376., 1168125., 1172850., 1177575., 1182300.,
      928956.,  932792.,  936628.,  940464.,  1113756., 1118040., 1122324.,
      1126608., 1385825., 1391250., 1396675., 1402100., 1654898., 1661492.,
      1668086., 1674680., 1920751., 1928542., 1936333., 1944124., 1958971.,
      1966958., 1974945., 1982932., 1997191., 2005374., 2013557., 2021740.,
      1698410., 1705508., 1712606., 1719704., 1403745., 1409730., 1415715.,
      1421700., 1113420., 1118264., 1123108., 1127952., 1322412., 1327704.,
      1332996., 1338288., 1641605., 1648290., 1654975., 1661660., 1955786.,
      1963892., 1971998., 1980104., 2264731., 2274286., 2283841., 2293396.,
      2302951., 2312702., 2322453., 2332204., 2341171., 2351118., 2361065.,
      2371012., 1987202., 1995812., 2004422., 2013032., 1639365., 1646610.,
      1653855., 1661100., 1297884., 1303736., 1309588., 1315440., 1531068.,
      1537368., 1543668., 1549968., 1897385., 1905330., 1913275., 1921220.,
      2256674., 2266292., 2275910., 2285528., 2608711., 2620030., 2631349.,
      2642668., 2646931., 2658446., 2669961., 2681476., 2685151., 2696862.,
      2708573., 2720284., 2275994., 2286116., 2296238., 2306360., 1874985.,
      1883490., 1891995., 1900500., 1482348., 1489208., 1496068., 1502928.,
      1186056., 1191888., 1197720., 1203552., 1464630., 1471980., 1479330.,
      1486680., 1735644., 1744536., 1753428., 1762320., 1998906., 2009364.,
      2019822., 2030280., 2026962., 2037588., 2048214., 2058840., 2055018.,
      2065812., 2076606., 2087400., 1734924., 1744248., 1753572., 1762896.,
      1423350., 1431180., 1439010., 1446840., 1120488., 1126800., 1133112.,
      1139424., 869700.,  874920.,  880140.,  885360.,  1068975., 1075550.,
      1082125., 1088700., 1260670., 1268620., 1276570., 1284520., 1444625.,
      1453970., 1463315., 1472660., 1464085., 1473570., 1483055., 1492540.,
      1483545., 1493170., 1502795., 1512420., 1245670., 1253980., 1262290.,
      1270600., 1016175., 1023150., 1030125., 1037100., 795220.,  800840.,
      806460.,  812080.,  590064.,  594528.,  598992.,  603456.,  720500.,
      726120.,  731740.,  737360.,  843848.,  850640.,  857432.,  864224.,
      959980.,  967960.,  975940.,  983920.,  972412.,  980504.,  988596.,
      996688.,  984844.,  993048.,  1001252., 1009456., 820328.,  827408.,
      834488.,  841568.,  663540.,  669480.,  675420.,  681360.,  514608.,
      519392.,  524176.,  528960.,  2010480., 2017248., 2024016., 2030784.,
      2491220., 2499720., 2508220., 2516720., 2962952., 2973200., 2983448.,
      2993696., 3425548., 3437560., 3449572., 3461584., 3456796., 3468920.,
      3481044., 3493168., 3488044., 3500280., 3512516., 3524752., 2960168.,
      2970704., 2981240., 2991776., 2441940., 2450760., 2459580., 2468400.,
      1933488., 1940576., 1947664., 1954752., 2401140., 2409960., 2418780.,
      2427600., 2970875., 2981950., 2993025., 3004100., 3528070., 3541420.,
      3554770., 3568120., 4072565., 4088210., 4103855., 4119500., 4107705.,
      4123490., 4139275., 4155060., 4142845., 4158770., 4174695., 4190620.,
      3510190., 3523900., 3537610., 3551320., 2890875., 2902350., 2913825.,
      2925300., 2285060., 2294280., 2303500., 2312720., 2730888., 2741904.,
      2752920., 2763936., 3373110., 3386940., 3400770., 3414600., 3998748.,
      4015416., 4032084., 4048752., 4607610., 4627140., 4646670., 4666200.,
      4645074., 4664772., 4684470., 4704168., 4682538., 4702404., 4722270.,
      4742136., 3960012., 3977112., 3994212., 4011312., 3255030., 3269340.,
      3283650., 3297960., 2567784., 2579280., 2590776., 2602272., 2991660.,
      3005016., 3018372., 3031728., 3687845., 3704610., 3721375., 3738140.,
      4362890., 4383092., 4403294., 4423496., 5016571., 5040238., 5063905.,
      5087572., 5054791., 5078654., 5102517., 5126380., 5093011., 5117070.,
      5141129., 5165188., 4297538., 4318244., 4338950., 4359656., 3524325.,
      3541650., 3558975., 3576300., 2773596., 2787512., 2801428., 2815344.,
      3200316., 3214680., 3229044., 3243408., 3943625., 3961650., 3979675.,
      3997700., 4663778., 4685492., 4707206., 4728920., 5360551., 5385982.,
      5411413., 5436844., 5398771., 5424398., 5450025., 5475652., 5436991.,
      5462814., 5488637., 5514460., 4586330., 4608548., 4630766., 4652984.,
      3759945., 3778530., 3797115., 3815700., 2958060., 2972984., 2987908.,
      3002832., 3408972., 3424344., 3439716., 3455088., 4199405., 4218690.,
      4237975., 4257260., 4964666., 4987892., 5011118., 5034344., 5704531.,
      5731726., 5758921., 5786116., 5742751., 5770142., 5797533., 5824924.,
      5780971., 5808558., 5836145., 5863732., 4875122., 4898852., 4922582.,
      4946312., 3995565., 4015410., 4035255., 4055100., 3142524., 3158456.,
      3174388., 3190320., 3617628., 3634008., 3650388., 3666768., 4455185.,
      4475730., 4496275., 4516820., 5265554., 5290292., 5315030., 5339768.,
      6048511., 6077470., 6106429., 6135388., 6086731., 6115886., 6145041.,
      6174196., 6124951., 6154302., 6183653., 6213004., 5163914., 5189156.,
      5214398., 5239640., 4231185., 4252290., 4273395., 4294500., 3326988.,
      3343928., 3360868., 3377808., 2732616., 2747088., 2761560., 2776032.,
      3354630., 3372780., 3390930., 3409080., 3951804., 3973656., 3995508.,
      4017360., 4523946., 4549524., 4575102., 4600680., 4552002., 4577748.,
      4603494., 4629240., 4580058., 4605972., 4631886., 4657800., 3847404.,
      3869688., 3891972., 3914256., 3140550., 3159180., 3177810., 3196440.,
      2459688., 2474640., 2489592., 2504544., 1956900., 1969320., 1981740.,
      1994160., 2391975., 2407550., 2423125., 2438700., 2805070., 2823820.,
      2842570., 2861320., 3196025., 3217970., 3239915., 3261860., 3215485.,
      3237570., 3259655., 3281740., 3234945., 3257170., 3279395., 3301620.,
      2703670., 2722780., 2741890., 2761000., 2195175., 2211150., 2227125.,
      2243100., 1709620., 1722440., 1735260., 1748080., 1298544., 1308768.,
      1318992., 1329216., 1577300., 1590120., 1602940., 1615760., 1837448.,
      1852880., 1868312., 1883744., 2078860., 2096920., 2114980., 2133040.,
      2091292., 2109464., 2127636., 2145808., 2103724., 2122008., 2140292.,
      2158576., 1744808., 1760528., 1776248., 1791968., 1405140., 1418280.,
      1431420., 1444560., 1084848., 1095392., 1105936., 1116480., 3686640.,
      3699168., 3711696., 3724224., 4557620., 4573320., 4589020., 4604720.,
      5408072., 5426960., 5445848., 5464736., 6237868., 6259960., 6282052.,
      6304144., 6269116., 6291320., 6313524., 6335728., 6300364., 6322680.,
      6344996., 6367312., 5336168., 5355344., 5374520., 5393696., 4393140.,
      4409160., 4425180., 4441200., 3471408., 3484256., 3497104., 3509952.,
      4294740., 4310760., 4326780., 4342800., 5301875., 5321950., 5342025.,
      5362100., 6282070., 6306220., 6330370., 6354520., 7235165., 7263410.,
      7291655., 7319900., 7270305., 7298690., 7327075., 7355460., 7305445.,
      7333970., 7362495., 7391020., 6177790., 6202300., 6226810., 6251320.,
      5077875., 5098350., 5118825., 5139300., 4005860., 4022280., 4038700.,
      4055120., 4761288., 4780944., 4800600., 4820256., 5867910., 5892540.,
      5917170., 5941800., 6940668., 6970296., 6999924., 7029552., 7979370.,
      8014020., 8048670., 8083320., 8016834., 8051652., 8086470., 8121288.,
      8054298., 8089284., 8124270., 8159256., 6798252., 6828312., 6858372.,
      6888432., 5577030., 5602140., 5627250., 5652360., 4390824., 4410960.,
      4431096., 4451232., 5078220., 5101656., 5125092., 5148528., 6245645.,
      6275010., 6304375., 6333740., 7371770., 7407092., 7442414., 7477736.,
      8456371., 8497678., 8538985., 8580292., 8494591., 8536094., 8577597.,
      8619100., 8532811., 8574510., 8616209., 8657908., 7185458., 7221284.,
      7257110., 7292936., 5880525., 5910450., 5940375., 5970300., 4618236.,
      4642232., 4666228., 4690224., 5286876., 5311320., 5335764., 5360208.,
      6501425., 6532050., 6562675., 6593300., 7672658., 7709492., 7746326.,
      7783160., 8800351., 8843422., 8886493., 8929564., 8838571., 8881838.,
      8925105., 8968372., 8876791., 8920254., 8963717., 9007180., 7474250.,
      7511588., 7548926., 7586264., 6116145., 6147330., 6178515., 6209700.,
      4802700., 4827704., 4852708., 4877712., 5495532., 5520984., 5546436.,
      5571888., 6757205., 6789090., 6820975., 6852860., 7973546., 8011892.,
      8050238., 8088584., 9144331., 9189166., 9234001., 9278836., 9182551.,
      9227582., 9272613., 9317644., 9220771., 9265998., 9311225., 9356452.,
      7763042., 7801892., 7840742., 7879592., 6351765., 6384210., 6416655.,
      6449100., 4987164., 5013176., 5039188., 5065200., 5704188., 5730648.,
      5757108., 5783568., 7012985., 7046130., 7079275., 7112420., 8274434.,
      8314292., 8354150., 8394008., 9488311., 9534910., 9581509., 9628108.,
      9526531., 9573326., 9620121., 9666916., 9564751., 9611742., 9658733.,
      9705724., 8051834., 8092196., 8132558., 8172920., 6587385., 6621090.,
      6654795., 6688500., 5171628., 5198648., 5225668., 5252688., 4279176.,
      4302288., 4325400., 4348512., 5244630., 5273580., 5302530., 5331480.,
      6167964., 6202776., 6237588., 6272400., 7048986., 7089684., 7130382.,
      7171080., 7077042., 7117908., 7158774., 7199640., 7105098., 7146132.,
      7187166., 7228200., 5959884., 5995128., 6030372., 6065616., 4857750.,
      4887180., 4916610., 4946040., 3798888., 3822480., 3846072., 3869664.,
      3044100., 3063720., 3083340., 3102960., 3714975., 3739550., 3764125.,
      3788700., 4349470., 4379020., 4408570., 4438120., 4947425., 4981970.,
      5016515., 5051060., 4966885., 5001570., 5036255., 5070940., 4986345.,
      5021170., 5055995., 5090820., 4161670., 4191580., 4221490., 4251400.,
      3374175., 3399150., 3424125., 3449100., 2624020., 2644040., 2664060.,
      2684080., 2007024., 2023008., 2038992., 2054976., 2434100., 2454120.,
      2474140., 2494160., 2831048., 2855120., 2879192., 2903264., 3197740.,
      3225880., 3254020., 3282160., 3210172., 3238424., 3266676., 3294928.,
      3222604., 3250968., 3279332., 3307696., 2669288., 2693648., 2718008.,
      2742368., 2146740., 2167080., 2187420., 2207760., 1655088., 1671392.,
      1687696., 1704000.};
  const std::array<int, 4> in_shape = {{3, 10, 9, 2}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x10x9x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1576771., 1582798., 1588825., 1594852., 1614991., 1621214., 1627437.,
      1633660., 1653211., 1659630., 1666049., 1672468., 1920751., 1928542.,
      1936333., 1944124., 1958971., 1966958., 1974945., 1982932., 1997191.,
      2005374., 2013557., 2021740., 2264731., 2274286., 2283841., 2293396.,
      2302951., 2312702., 2322453., 2332204., 2341171., 2351118., 2361065.,
      2371012., 2608711., 2620030., 2631349., 2642668., 2646931., 2658446.,
      2669961., 2681476., 2685151., 2696862., 2708573., 2720284., 5016571.,
      5040238., 5063905., 5087572., 5054791., 5078654., 5102517., 5126380.,
      5093011., 5117070., 5141129., 5165188., 5360551., 5385982., 5411413.,
      5436844., 5398771., 5424398., 5450025., 5475652., 5436991., 5462814.,
      5488637., 5514460., 5704531., 5731726., 5758921., 5786116., 5742751.,
      5770142., 5797533., 5824924., 5780971., 5808558., 5836145., 5863732.,
      6048511., 6077470., 6106429., 6135388., 6086731., 6115886., 6145041.,
      6174196., 6124951., 6154302., 6183653., 6213004., 8456371., 8497678.,
      8538985., 8580292., 8494591., 8536094., 8577597., 8619100., 8532811.,
      8574510., 8616209., 8657908., 8800351., 8843422., 8886493., 8929564.,
      8838571., 8881838., 8925105., 8968372., 8876791., 8920254., 8963717.,
      9007180., 9144331., 9189166., 9234001., 9278836., 9182551., 9227582.,
      9272613., 9317644., 9220771., 9265998., 9311225., 9356452., 9488311.,
      9534910., 9581509., 9628108., 9526531., 9573326., 9620121., 9666916.,
      9564751., 9611742., 9658733., 9705724.};
  const std::array<int, 4> in_shape = {{3, 10, 9, 2}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x10x9x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      668000.,  849080.,  1035280., 1226344., 1289288., 1352232., 1169296.,
      982520.,  792160.,  1016280., 1281550., 1550660., 1823290., 1894130.,
      1964970., 1689380., 1411550., 1131800., 1404816., 1761780., 2120280.,
      2479932., 2555532., 2631132., 2252184., 1873620., 1495824., 1817480.,
      2269610., 2719948., 3168046., 3245270., 3322494., 2833516., 2348570.,
      1868104., 2238824., 2786210., 3327772., 3863062., 3940286., 4017510.,
      3417148., 2824850., 2241064., 2660168., 3302810., 3935596., 4558078.,
      4635302., 4712526., 4000780., 3301130., 2614024., 3081512., 3819410.,
      4543420., 5253094., 5330318., 5407542., 4584412., 3777410., 2986984.,
      2391120., 2953380., 3500664., 4032588., 4089372., 4146156., 3501240.,
      2873220., 2262480., 1757240., 2160550., 2548820., 2921730., 2961210.,
      3000690., 2520500., 2056950., 1610360., 1196000., 1461080., 1712080.,
      1948744., 1974056., 1999368., 1666384., 1348760., 1046752., 4043360.,
      5010680., 5960080., 6891304., 6954248., 7017192., 5955856., 4913720.,
      3891040., 4043800., 4809118., 5557668., 6289130., 6002594., 5724250.,
      4849796., 3993710., 3156312., 3282192., 3886420., 4474008., 5044572.,
      4820140., 4603900., 3888600., 3191860., 2514064., 2612808., 3076442.,
      3522540., 3950654., 3785190., 3627918., 3048076., 2488010., 1948168.,
      2063400., 2428754., 2780732., 3118886., 3010766., 2910838., 2445916.,
      1996610., 1563368., 1743368., 2067786., 2382988., 2688526., 2637750.,
      2595166., 2187820., 1791930., 1407944., 1652712., 1993538., 2329308.,
      2659574., 2666142., 2680902., 2273788., 1873970., 1481896., 1138128.,
      1390340., 1642168., 1893228., 1936700., 1988364., 1695480., 1404900.,
      1117008., 827000.,  1028150., 1226420., 1421490., 1460970., 1500450.,
      1271060., 1046150., 826040.,  588000.,  725400.,  858448.,  986888.,
      1012200., 1037512., 871120.,  710360.,  555488.,  2618208., 3253560.,
      3880720., 4499432., 4562376., 4625320., 3934864., 3253880., 2582624.,
      3221080., 3995950., 4758020., 5506970., 5577810., 5648650., 4796900.,
      3959550., 3136920., 3771024., 4669620., 5549784., 6411132., 6486732.,
      6562332., 5561880., 4581780., 3622416., 4251912., 5254410., 6231820.,
      7183694., 7260918., 7338142., 6205612., 5100410., 4022984., 4673256.,
      5771010., 6839644., 7878710., 7955934., 8033158., 6789244., 5576690.,
      4395944., 5094600., 5889274., 6658988., 7403294., 7106758., 6818414.,
      5504076., 4225130., 3323016., 3971752., 4553458., 5114364., 5654022.,
      5414830., 5183830., 4156444., 3160290., 2479464., 2883408., 3255652.,
      3609336., 3944076., 3741788., 3547692., 2803000., 2086980., 1626320.,
      1944760., 2147526., 2334996., 2506850., 2344602., 2190546., 1691764.,
      1218070., 938744.,  1171936., 1249240., 1315536., 1370568., 1251496.,
      1140616., 846928.,  573720.,  432864.};
  const std::array<int, 4> in_shape = {{3, 10, 9, 4}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x10x9x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3168046., 3245270., 3322494., 3863062., 3940286., 4017510.,
      4558078., 4635302., 4712526., 5253094., 5330318., 5407542.,
      3950654., 3785190., 3627918., 3118886., 3010766., 2910838.,
      2688526., 2637750., 2595166., 2659574., 2666142., 2680902.,
      7183694., 7260918., 7338142., 7878710., 7955934., 8033158.,
      7403294., 7106758., 6818414., 5654022., 5414830., 5183830.};
  const std::array<int, 4> in_shape = {{3, 10, 9, 4}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x10x9x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1332000.,  1336000.,  1693000.,  1698160.,  2064176.,  2070560.,
      2445016.,  2452688.,  2570456.,  2578576.,  2695896.,  2704464.,
      2331056.,  2338592.,  1958600.,  1965040.,  1579040.,  1584320.,
      2026120.,  2032560.,  2554850.,  2563100.,  3091180.,  3101320.,
      3634470.,  3646580.,  3775590.,  3788260.,  3916710.,  3929940.,
      3367180.,  3378760.,  2813250.,  2823100.,  2255560.,  2263600.,
      2800176.,  2809632.,  3511500.,  3523560.,  4225800.,  4240560.,
      4942308.,  4959864.,  5092836.,  5111064.,  5243364.,  5262264.,
      4487880.,  4504368.,  3733260.,  3747240.,  2980272.,  2991648.,
      3621912.,  3634960.,  4522630.,  4539220.,  5419652.,  5439896.,
      6312082.,  6336092.,  6465746.,  6490540.,  6619410.,  6644988.,
      5644772.,  5667032.,  4678310.,  4697140.,  3720920.,  3736208.,
      4460568.,  4477648.,  5550790.,  5572420.,  6629252.,  6655544.,
      7695058.,  7726124.,  7848722.,  7880572.,  8002386.,  8035020.,
      6805988.,  6834296.,  5625830.,  5649700.,  4462808.,  4482128.,
      5299224.,  5320336.,  6578950.,  6605620.,  7838852.,  7871192.,
      9078034.,  9116156.,  9231698.,  9270604.,  9385362.,  9425052.,
      7967204.,  8001560.,  6573350.,  6602260.,  5204696.,  5228048.,
      6137880.,  6163024.,  7607110.,  7638820.,  9048452.,  9086840.,
      10461010., 10506188., 10614674., 10660636., 10768338., 10815084.,
      9128420.,  9168824.,  7520870.,  7554820.,  5946584.,  5973968.,
      4758960.,  4782240.,  5877420.,  5906760.,  6965832.,  7001328.,
      8023428.,  8065176.,  8136324.,  8178744.,  8249220.,  8292312.,
      6965256.,  7002480.,  5715180.,  5746440.,  4499760.,  4524960.,
      3493640.,  3514480.,  4294850.,  4321100.,  5065900.,  5097640.,
      5806150.,  5843460.,  5884550.,  5922420.,  5962950.,  6001380.,
      5007820.,  5041000.,  4086050.,  4113900.,  3198280.,  3220720.,
      2374176.,  2392000.,  2899720.,  2922160.,  3397040.,  3424160.,
      3865624.,  3897488.,  3915800.,  3948112.,  3965976.,  3998736.,
      3304496.,  3332768.,  2673800.,  2697520.,  2074400.,  2093504.,
      8059680.,  8086720.,  9987400.,  10021360., 11879216., 11920160.,
      13734616., 13782608., 13860056., 13908496., 13985496., 14034384.,
      11869616., 11911712., 9792200.,  9827440.,  7753760.,  7782080.,
      8056456.,  8087600.,  9580130.,  9618236.,  11070188., 11115336.,
      12525990., 12578260., 11954406., 12005188., 11399206., 11448500.,
      9657100.,  9699592.,  7951810.,  7987420.,  6283976.,  6312624.,
      6532656.,  6564384.,  7733964.,  7772840.,  8901896.,  8948016.,
      10035684., 10089144., 9588196.,  9640280.,  9157092.,  9207800.,
      7733448.,  7777200.,  6347020.,  6383720.,  4998576.,  5028128.,
      5192728.,  5225616.,  6112518.,  6152884.,  6997124.,  7045080.,
      7845650.,  7901308.,  7515986.,  7570380.,  7202706.,  7255836.,
      6050276.,  6096152.,  4937510.,  4976020.,  3865304.,  3896336.,
      4098072.,  4126800.,  4822342.,  4857508.,  5519748.,  5561464.,
      6189394.,  6237772.,  5974418.,  6021532.,  5775826.,  5821676.,
      4852196.,  4891832.,  3959910.,  3993220.,  3099864.,  3126736.,
      3462168.,  3486736.,  4105606.,  4135572.,  4730500.,  4765976.,
      5335954.,  5377052.,  5235666.,  5275500.,  5151762.,  5190332.,
      4342244.,  4375640.,  3555750.,  3583860.,  2793176.,  2815888.,
      3285016.,  3305424.,  3962310.,  3987076.,  4629380.,  4658616.,
      5285330.,  5319148.,  5299730.,  5332284.,  5330514.,  5361804.,
      4520420.,  4547576.,  3725030.,  3747940.,  2945240.,  2963792.,
      2263472.,  2276256.,  2765484.,  2780680.,  3266632.,  3284336.,
      3766148.,  3786456.,  3854468.,  3873400.,  3959172.,  3976728.,
      3375624.,  3390960.,  2796780.,  2809800.,  2223408.,  2234016.,
      1645320.,  1654000.,  2045250.,  2056300.,  2439340.,  2452840.,
      2826950.,  2842980.,  2905350.,  2921940.,  2983750.,  3000900.,
      2527180.,  2542120.,  2079650.,  2092300.,  1641800.,  1652080.,
      1167904.,  1176000.,  1440520.,  1450800.,  1704368.,  1716896.,
      1958936.,  1973776.,  2009112.,  2024400.,  2059288.,  2075024.,
      1728560.,  1742240.,  1409160.,  1420720.,  1101600.,  1110976.,
      5219104.,  5236416.,  6485320.,  6507120.,  7735088.,  7761440.,
      8967896.,  8998864.,  9093336.,  9124752.,  9218776.,  9250640.,
      7842224.,  7869728.,  6484680.,  6507760.,  5146656.,  5165248.,
      6419080.,  6442160.,  7962850.,  7991900.,  9480940.,  9516040.,
      10972710., 11013940., 11113830., 11155620., 11254950., 11297300.,
      9557260.,  9593800.,  7888450.,  7919100.,  6249160.,  6273840.,
      7512624.,  7542048.,  9302220.,  9339240.,  11054856., 11099568.,
      12769764., 12822264., 12920292., 12973464., 13070820., 13124664.,
      11077320., 11123760., 9124620.,  9163560.,  7213488.,  7244832.,
      8467480.,  8503824.,  10463110., 10508820., 12408452., 12463640.,
      14302610., 14367388., 14456274., 14521836., 14609938., 14676284.,
      12354020., 12411224., 10152870., 10200820., 8007384.,  8045968.,
      9306136.,  9346512.,  11491270., 11542020., 13618052., 13679288.,
      15685586., 15757420., 15839250., 15911868., 15992914., 16066316.,
      13515236., 13578488., 11100390., 11153380., 8749272.,  8791888.,
      10144792., 10189200., 11724806., 11778548., 13254788., 13317976.,
      14733842., 14806588., 14142034., 14213516., 13566610., 13636828.,
      10949092., 11008152., 8402470.,  8450260.,  6607576.,  6646032.,
      7903256.,  7943504.,  9058374.,  9106916.,  10171780., 10228728.,
      11242578., 11308044., 10765458., 10829660., 10304722., 10367660.,
      8260068.,  8312888.,  6277990.,  6320580.,  4924632.,  4958928.,
      5731760.,  5766816.,  6469292.,  6511304.,  7169608.,  7218672.,
      7831940.,  7888152.,  7428740.,  7483576.,  7041924.,  7095384.,
      5561352.,  5606000.,  4138220.,  4173960.,  3223856.,  3252640.,
      3860232.,  3889520.,  4260290.,  4295052.,  4629676.,  4669992.,
      4967750.,  5013700.,  4644742.,  4689204.,  4338118.,  4381092.,
      3347916.,  3383528.,  2407970.,  2436140.,  1854792.,  1877488.,
      2320928.,  2343872.,  2471688.,  2498480.,  2600368.,  2631072.,
      2706456.,  2741136.,  2469912.,  2502992.,  2249752.,  2281232.,
      1668144.,  1693856.,  1127560.,  1147440.,  849696.,   865728.};
  const std::array<int, 4> in_shape = {{3, 10, 9, 4}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x10x9x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6312082.,  6336092.,  6465746.,  6490540.,  6619410.,  6644988.,
      7695058.,  7726124.,  7848722.,  7880572.,  8002386.,  8035020.,
      9078034.,  9116156.,  9231698.,  9270604.,  9385362.,  9425052.,
      10461010., 10506188., 10614674., 10660636., 10768338., 10815084.,
      7845650.,  7901308.,  7515986.,  7570380.,  7202706.,  7255836.,
      6189394.,  6237772.,  5974418.,  6021532.,  5775826.,  5821676.,
      5335954.,  5377052.,  5235666.,  5275500.,  5151762.,  5190332.,
      5285330.,  5319148.,  5299730.,  5332284.,  5330514.,  5361804.,
      14302610., 14367388., 14456274., 14521836., 14609938., 14676284.,
      15685586., 15757420., 15839250., 15911868., 15992914., 16066316.,
      14733842., 14806588., 14142034., 14213516., 13566610., 13636828.,
      11242578., 11308044., 10765458., 10829660., 10304722., 10367660.};
  const std::array<int, 4> in_shape = {{3, 10, 9, 4}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x10x9x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      760480.,   764480.,   768480.,   772480.,   1012328.,  1017488.,
      1022648.,  1027808.,  1268080.,  1274464.,  1280848.,  1287232.,
      1526712.,  1534384.,  1542056.,  1549728.,  1637880.,  1646000.,
      1654120.,  1662240.,  1749048.,  1757616.,  1766184.,  1774752.,
      1560048.,  1567584.,  1575120.,  1582656.,  1380456.,  1386896.,
      1393336.,  1399776.,  1211296.,  1216576.,  1221856.,  1227136.,
      1335272.,  1341712.,  1348152.,  1354592.,  1774474.,  1782724.,
      1790974.,  1799224.,  2212412.,  2222552.,  2232692.,  2242832.,
      2647806.,  2659916.,  2672026.,  2684136.,  2790222.,  2802892.,
      2815562.,  2828232.,  2932638.,  2945868.,  2959098.,  2972328.,
      2596060.,  2607640.,  2619220.,  2630800.,  2275338.,  2285188.,
      2295038.,  2304888.,  1971752.,  1979792.,  1987832.,  1995872.,
      2069360.,  2078816.,  2088272.,  2097728.,  2725500.,  2737560.,
      2749620.,  2761680.,  3371112.,  3385872.,  3400632.,  3415392.,
      4004660.,  4022216.,  4039772.,  4057328.,  4165780.,  4184008.,
      4202236.,  4220464.,  4326900.,  4345800.,  4364700.,  4383600.,
      3800360.,  3816848.,  3833336.,  3849824.,  3300220.,  3314200.,
      3328180.,  3342160.,  2828016.,  2839392.,  2850768.,  2862144.,
      2898232.,  2911280.,  2924328.,  2937376.,  3784766.,  3801356.,
      3817946.,  3834536.,  4647412.,  4667656.,  4687900.,  4708144.,
      5484378.,  5508388.,  5532398.,  5556408.,  5651658.,  5676452.,
      5701246.,  5726040.,  5818938.,  5844516.,  5870094.,  5895672.,
      5076180.,  5098440.,  5120700.,  5142960.,  4374462.,  4393292.,
      4412122.,  4430952.,  3715576.,  3730864.,  3746152.,  3761440.,
      3760504.,  3777584.,  3794664.,  3811744.,  4877582.,  4899212.,
      4920842.,  4942472.,  5954644.,  5980936.,  6007228.,  6033520.,
      6989898.,  7020964.,  7052030.,  7083096.,  7157178.,  7189028.,
      7220878.,  7252728.,  7324458.,  7357092.,  7389726.,  7422360.,
      6360372.,  6388680.,  6416988.,  6445296.,  5453454.,  5477324.,
      5501194.,  5525064.,  4605496.,  4624816.,  4644136.,  4663456.,
      4622776.,  4643888.,  4665000.,  4686112.,  5970398.,  5997068.,
      6023738.,  6050408.,  7261876.,  7294216.,  7326556.,  7358896.,
      8495418.,  8533540.,  8571662.,  8609784.,  8662698.,  8701604.,
      8740510.,  8779416.,  8829978.,  8869668.,  8909358.,  8949048.,
      7644564.,  7678920.,  7713276.,  7747632.,  6532446.,  6561356.,
      6590266.,  6619176.,  5495416.,  5518768.,  5542120.,  5565472.,
      5485048.,  5510192.,  5535336.,  5560480.,  7063214.,  7094924.,
      7126634.,  7158344.,  8569108.,  8607496.,  8645884.,  8684272.,
      10000938., 10046116., 10091294., 10136472., 10168218., 10214180.,
      10260142., 10306104., 10335498., 10382244., 10428990., 10475736.,
      8928756.,  8969160.,  9009564.,  9049968.,  7611438.,  7645388.,
      7679338.,  7713288.,  6385336.,  6412720.,  6440104.,  6467488.,
      4936816.,  4960096.,  4983376.,  5006656.,  6441660.,  6471000.,
      6500340.,  6529680.,  7878120.,  7913616.,  7949112.,  7984608.,
      9244660.,  9286408.,  9328156.,  9369904.,  9387860.,  9430280.,
      9472700.,  9515120.,  9531060.,  9574152.,  9617244.,  9660336.,
      8298152.,  8335376.,  8372600.,  8409824.,  7149500.,  7180760.,
      7212020.,  7243280.,  6086640.,  6111840.,  6137040.,  6162240.,
      4911272.,  4932112.,  4952952.,  4973792.,  6483706.,  6509956.,
      6536206.,  6562456.,  7995740.,  8027480.,  8059220.,  8090960.,
      9446094.,  9483404.,  9520714.,  9558024.,  9577758.,  9615628.,
      9653498.,  9691368.,  9709422.,  9747852.,  9786282.,  9824712.,
      8522236.,  8555416.,  8588596.,  8621776.,  7410042.,  7437892.,
      7465742.,  7493592.,  6374120.,  6396560.,  6419000.,  6441440.,
      4730528.,  4748352.,  4766176.,  4784000.,  5777000.,  5799440.,
      5821880.,  5844320.,  6766960.,  6794080.,  6821200.,  6848320.,
      7699384.,  7731248.,  7763112.,  7794976.,  7799288.,  7831600.,
      7863912.,  7896224.,  7899192.,  7931952.,  7964712.,  7997472.,
      6580720.,  6608992.,  6637264.,  6665536.,  5323880.,  5347600.,
      5371320.,  5395040.,  4129696.,  4148800.,  4167904.,  4187008.,
      6082720.,  6109760.,  6136800.,  6163840.,  7987688.,  8021648.,
      8055608.,  8089568.,  9804400.,  9845344.,  9886288.,  9927232.,
      11531832., 11579824., 11627816., 11675808., 11643000., 11691440.,
      11739880., 11788320., 11754168., 11803056., 11851944., 11900832.,
      10280688., 10322784., 10364880., 10406976., 8908776.,  8944016.,
      8979256.,  9014496.,  7639456.,  7667776.,  7696096.,  7724416.,
      7358312.,  7389456.,  7420600.,  7451744.,  9356266.,  9394372.,
      9432478.,  9470584.,  11270524., 11315672., 11360820., 11405968.,
      13099806., 13152076., 13204346., 13256616., 12867438., 12918220.,
      12969002., 13019784., 12667838., 12717132., 12766426., 12815720.,
      11114524., 11157016., 11199508., 11242000., 9659498.,  9695108.,
      9730718.,  9766328.,  8304040.,  8332688.,  8361336.,  8389984.,
      7693424.,  7725152.,  7756880.,  7788608.,  9947580.,  9986456.,
      10025332., 10064208., 12118504., 12164624., 12210744., 12256864.,
      14204660., 14258120., 14311580., 14365040., 14220372., 14272456.,
      14324540., 14376624., 14268852., 14319560., 14370268., 14420976.,
      12525224., 12568976., 12612728., 12656480., 10880700., 10917400.,
      10954100., 10990800., 9336816.,  9366368.,  9395920.,  9425472.,
      8395704.,  8428592.,  8461480.,  8494368.,  10987614., 11027980.,
      11068346., 11108712., 12444084., 12492040., 12539996., 12587952.,
      13811898., 13867556., 13923214., 13978872., 13014570., 13068964.,
      13123358., 13177752., 12250010., 12303140., 12356270., 12409400.,
      10221716., 10267592., 10313468., 10359344., 8297438.,  8335948.,
      8374458.,  8412968.,  6478968.,  6510000.,  6541032.,  6572064.,
      6448120.,  6476848.,  6505576.,  6534304.,  7453998.,  7489164.,
      7524330.,  7559496.,  8389652.,  8431368.,  8473084.,  8514800.,
      9253290.,  9301668.,  9350046.,  9398424.,  8685338.,  8732452.,
      8779566.,  8826680.,  8150154.,  8196004.,  8241854.,  8287704.,
      6799604.,  6839240.,  6878876.,  6918512.,  5536430.,  5569740.,
      5603050.,  5636360.,  4362424.,  4389296.,  4416168.,  4443040.,
      4369464.,  4394032.,  4418600.,  4443168.,  5067262.,  5097228.,
      5127194.,  5157160.,  5711476.,  5746952.,  5782428.,  5817904.,
      6300314.,  6341412.,  6382510.,  6423608.,  5961738.,  6001572.,
      6041406.,  6081240.,  5655930.,  5694500.,  5733070.,  5771640.,
      4753748.,  4787144.,  4820540.,  4853936.,  3922302.,  3950412.,
      3978522.,  4006632.,  3163384.,  3186096.,  3208808.,  3231520.,
      3208312.,  3228720.,  3249128.,  3269536.,  3827406.,  3852172.,
      3876938.,  3901704.,  4409556.,  4438792.,  4468028.,  4497264.,
      4952970.,  4986788.,  5020606.,  5054424.,  4843770.,  4876324.,
      4908878.,  4941432.,  4767338.,  4798628.,  4829918.,  4861208.,
      4084148.,  4111304.,  4138460.,  4165616.,  3455054.,  3477964.,
      3500874.,  3523784.,  2881848.,  2900400.,  2918952.,  2937504.,
      2135408.,  2148192.,  2160976.,  2173760.,  2722300.,  2737496.,
      2752692.,  2767888.,  3299176.,  3316880.,  3334584.,  3352288.,
      3864500.,  3884808.,  3905116.,  3925424.,  3960596.,  3979528.,
      3998460.,  4017392.,  4089460.,  4107016.,  4124572.,  4142128.,
      3631144.,  3646480.,  3661816.,  3677152.,  3198716.,  3211736.,
      3224756.,  3237776.,  2793712.,  2804320.,  2814928.,  2825536.,
      2160680.,  2169360.,  2178040.,  2186720.,  2933594.,  2944644.,
      2955694.,  2966744.,  3694748.,  3708248.,  3721748.,  3735248.,
      4442862.,  4458892.,  4474922.,  4490952.,  4574526.,  4591116.,
      4607706.,  4624296.,  4706190.,  4723340.,  4740490.,  4757640.,
      4201788.,  4216728.,  4231668.,  4246608.,  3723738.,  3736388.,
      3749038.,  3761688.,  3273320.,  3283600.,  3293880.,  3304160.,
      2327712.,  2335808.,  2343904.,  2352000.,  2870760.,  2881040.,
      2891320.,  2901600.,  3396208.,  3408736.,  3421264.,  3433792.,
      3903032.,  3917872.,  3932712.,  3947552.,  4002936.,  4018224.,
      4033512.,  4048800.,  4102840.,  4118576.,  4134312.,  4150048.,
      3443440.,  3457120.,  3470800.,  3484480.,  2806760.,  2818320.,
      2829880.,  2841440.,  2193824.,  2203200.,  2212576.,  2221952.,
      3835552.,  3852864.,  3870176.,  3887488.,  5042536.,  5064336.,
      5086136.,  5107936.,  6200176.,  6226528.,  6252880.,  6279232.,
      7307448.,  7338416.,  7369384.,  7400352.,  7418616.,  7450032.,
      7481448.,  7512864.,  7529784.,  7561648.,  7593512.,  7625376.,
      6598640.,  6626144.,  6653648.,  6681152.,  5730152.,  5753232.,
      5776312.,  5799392.,  4925344.,  4943936.,  4962528.,  4981120.,
      5418728.,  5441808.,  5464888.,  5487968.,  7031882.,  7060932.,
      7089982.,  7119032.,  8577212.,  8612312.,  8647412.,  8682512.,
      10053438., 10094668., 10135898., 10177128., 10195854., 10237644.,
      10279434., 10321224., 10338270., 10380620., 10422970., 10465320.,
      8987484.,  9024024.,  9060564.,  9097104.,  7719114.,  7749764.,
      7780414.,  7811064.,  6534440.,  6559120.,  6583800.,  6608480.,
      6788464.,  6817888.,  6847312.,  6876736.,  8744188.,  8781208.,
      8818228.,  8855248.,  10609512., 10654224., 10698936., 10743648.,
      12382900., 12435400., 12487900., 12540400., 12544020., 12597192.,
      12650364., 12703536., 12705140., 12758984., 12812828., 12866672.,
      10985512., 11031952., 11078392., 11124832., 9372156.,  9411096.,
      9450036.,  9488976.,  7866608.,  7897952.,  7929296.,  7960640.,
      7880248.,  7916592.,  7952936.,  7989280.,  10098814., 10144524.,
      10190234., 10235944., 12200308., 12255496., 12310684., 12365872.,
      14182938., 14247716., 14312494., 14377272., 14350218., 14415780.,
      14481342., 14546904., 14517498., 14583844., 14650190., 14716536.,
      12495956., 12553160., 12610364., 12667568., 10608638., 10656588.,
      10704538., 10752488., 8857336.,  8895920.,  8934504.,  8973088.,
      8742520.,  8782896.,  8823272.,  8863648.,  11191630., 11242380.,
      11293130., 11343880., 13507540., 13568776., 13630012., 13691248.,
      15688458., 15760292., 15832126., 15903960., 15855738., 15928356.,
      16000974., 16073592., 16023018., 16096420., 16169822., 16243224.,
      13780148., 13843400., 13906652., 13969904., 11687630., 11740620.,
      11793610., 11846600., 9747256.,  9789872.,  9832488.,  9875104.,
      9604792.,  9649200.,  9693608.,  9738016.,  11745822., 11799564.,
      11853306., 11907048., 13770292., 13833480., 13896668., 13959856.,
      15676410., 15749156., 15821902., 15894648., 15403370., 15474852.,
      15546334., 15617816., 15163098., 15233316., 15303534., 15373752.,
      12862740., 12921800., 12980860., 13039920., 10728862., 10776652.,
      10824442., 10872232., 9072504.,  9110960.,  9149416.,  9187872.,
      8509176.,  8549424.,  8589672.,  8629920.,  10702574., 10751116.,
      10799658., 10848200., 12796052., 12853000., 12909948., 12966896.,
      14787818., 14853284., 14918750., 14984216., 14744154., 14808356.,
      14872558., 14936760., 14733258., 14796196., 14859134., 14922072.,
      12750196., 12803016., 12855836., 12908656., 10916974., 10959564.,
      11002154., 11044744., 9315256.,  9349552.,  9383848.,  9418144.,
      8083056.,  8118112.,  8153168.,  8188224.,  10496316., 10538328.,
      10580340., 10622352., 12826856., 12875920., 12924984., 12974048.,
      15073140., 15129352., 15185564., 15241776., 14186196., 14241032.,
      14295868., 14350704., 13332020., 13385480., 13438940., 13492400.,
      10463656., 10508304., 10552952., 10597600., 7726652.,  7762392.,
      7798132.,  7833872.,  6021616.,  6050400.,  6079184.,  6107968.,
      7503784.,  7533072.,  7562360.,  7591648.,  8273850.,  8308612.,
      8343374.,  8378136.,  8982492.,  9022808.,  9063124.,  9103440.,
      9628430.,  9674380.,  9720330.,  9766280.,  8959326.,  9003788.,
      9048250.,  9092712.,  8322990.,  8365964.,  8408938.,  8451912.,
      6445180.,  6480792.,  6516404.,  6552016.,  4676154.,  4704324.,
      4732494.,  4760664.,  3686888.,  3709584.,  3732280.,  3754976.,
      4618912.,  4641856.,  4664800.,  4687744.,  4916584.,  4943376.,
      4970168.,  4996960.,  5170032.,  5200736.,  5231440.,  5262144.,
      5378232.,  5412912.,  5447592.,  5482272.,  4906744.,  4939824.,
      4972904.,  5005984.,  4468024.,  4499504.,  4530984.,  4562464.,
      3310576.,  3336288.,  3362000.,  3387712.,  2235240.,  2255120.,
      2275000.,  2294880.,  1683360.,  1699392.,  1715424.,  1731456.};
  const std::array<int, 4> in_shape = {{3, 10, 9, 4}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x10x9x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5484378.,  5508388.,  5532398.,  5556408.,  5651658.,  5676452.,
      5701246.,  5726040.,  5818938.,  5844516.,  5870094.,  5895672.,
      6989898.,  7020964.,  7052030.,  7083096.,  7157178.,  7189028.,
      7220878.,  7252728.,  7324458.,  7357092.,  7389726.,  7422360.,
      8495418.,  8533540.,  8571662.,  8609784.,  8662698.,  8701604.,
      8740510.,  8779416.,  8829978.,  8869668.,  8909358.,  8949048.,
      10000938., 10046116., 10091294., 10136472., 10168218., 10214180.,
      10260142., 10306104., 10335498., 10382244., 10428990., 10475736.,
      13811898., 13867556., 13923214., 13978872., 13014570., 13068964.,
      13123358., 13177752., 12250010., 12303140., 12356270., 12409400.,
      9253290.,  9301668.,  9350046.,  9398424.,  8685338.,  8732452.,
      8779566.,  8826680.,  8150154.,  8196004.,  8241854.,  8287704.,
      6300314.,  6341412.,  6382510.,  6423608.,  5961738.,  6001572.,
      6041406.,  6081240.,  5655930.,  5694500.,  5733070.,  5771640.,
      4952970.,  4986788.,  5020606.,  5054424.,  4843770.,  4876324.,
      4908878.,  4941432.,  4767338.,  4798628.,  4829918.,  4861208.,
      14182938., 14247716., 14312494., 14377272., 14350218., 14415780.,
      14481342., 14546904., 14517498., 14583844., 14650190., 14716536.,
      15688458., 15760292., 15832126., 15903960., 15855738., 15928356.,
      16000974., 16073592., 16023018., 16096420., 16169822., 16243224.,
      15676410., 15749156., 15821902., 15894648., 15403370., 15474852.,
      15546334., 15617816., 15163098., 15233316., 15303534., 15373752.,
      14787818., 14853284., 14918750., 14984216., 14744154., 14808356.,
      14872558., 14936760., 14733258., 14796196., 14859134., 14922072.};
  const std::array<int, 4> in_shape = {{3, 10, 9, 4}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x10x10x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      11780.,  14930.,  18154.,  21448.,  22442.,  23436.,  24430.,  21070.,
      17660.,  14204.,  17900.,  22525.,  27200.,  31920.,  33040.,  34160.,
      35280.,  30275.,  25250.,  20210.,  24730.,  30965.,  37209.,  43456.,
      44653.,  45850.,  47047.,  40215.,  33410.,  26638.,  31990.,  39900.,
      47761.,  55566.,  56791.,  58016.,  59241.,  50470.,  41790.,  33208.,
      39410.,  49000.,  58471.,  67816.,  69041.,  70266.,  71491.,  60760.,
      50190.,  39788.,  46830.,  58100.,  69181.,  80066.,  81291.,  82516.,
      83741.,  71050.,  58590.,  46368.,  54250.,  67200.,  79891.,  92316.,
      93541.,  94766.,  95991.,  81340.,  66990.,  52948.,  42190.,  52085.,
      61707.,  71050.,  71953.,  72856.,  73759.,  62265.,  51080.,  40210.,
      31100.,  38225.,  45080.,  51660.,  52290.,  52920.,  53550.,  44975.,
      36700.,  28730.,  21260.,  25970.,  30430.,  34636.,  35042.,  35448.,
      35854.,  29890.,  24200.,  18788.,  70980.,  87930.,  104554., 120848.,
      121842., 122836., 123830., 105070., 86660.,  68604.,  84900.,  105025.,
      124700., 143920., 145040., 146160., 147280., 124775., 102750., 81210.,
      96730.,  119465., 141609., 163156., 164353., 165550., 166747., 141015.,
      115910., 91438.,  106190., 130900., 154861., 178066., 179291., 180516.,
      181741., 153370., 125790., 99008.,  113610., 140000., 165571., 190316.,
      191541., 192766., 193991., 163660., 134190., 105588., 121030., 149100.,
      176281., 202566., 203791., 205016., 206241., 173950., 142590., 112168.,
      128450., 158200., 186991., 214816., 216041., 217266., 218491., 184240.,
      150990., 118748., 97390.,  119585., 140907., 161350., 162253., 163156.,
      164059., 137865., 112580., 88210.,  70100.,  85725.,  100580., 114660.,
      115290., 115920., 116550., 97475.,  79200.,  61730.,  46860.,  56970.,
      66430.,  75236.,  75642.,  76048.,  76454.,  63490.,  51200.,  39588.,
      130180., 160930., 190954., 220248., 221242., 222236., 223230., 189070.,
      155660., 123004., 151900., 187525., 222200., 255920., 257040., 258160.,
      259280., 219275., 180250., 142210., 168730., 207965., 246009., 282856.,
      284053., 285250., 286447., 241815., 198410., 156238., 180390., 221900.,
      261961., 300566., 301791., 303016., 304241., 256270., 209790., 164808.,
      187810., 231000., 272671., 312816., 314041., 315266., 316491., 266560.,
      218190., 171388., 195230., 240100., 283381., 325066., 326291., 327516.,
      328741., 276850., 226590., 177968., 202650., 249200., 294091., 337316.,
      338541., 339766., 340991., 287140., 234990., 184548., 152590., 187085.,
      220107., 251650., 252553., 253456., 254359., 213465., 174080., 136210.,
      109100., 133225., 156080., 177660., 178290., 178920., 179550., 149975.,
      121700., 94730.,  72460.,  87970.,  102430., 115836., 116242., 116648.,
      117054., 97090.,  78200.,  60388.};
  const std::array<int, 4> in_shape = {{3, 10, 10, 1}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x10x10x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      55566.,  56791.,  58016.,  59241.,  67816.,  69041.,  70266.,  71491.,
      80066.,  81291.,  82516.,  83741.,  92316.,  93541.,  94766.,  95991.,
      178066., 179291., 180516., 181741., 190316., 191541., 192766., 193991.,
      202566., 203791., 205016., 206241., 214816., 216041., 217266., 218491.,
      300566., 301791., 303016., 304241., 312816., 314041., 315266., 316491.,
      325066., 326291., 327516., 328741., 337316., 338541., 339766., 340991.};
  const std::array<int, 4> in_shape = {{3, 10, 10, 1}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x10x10x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      23280.,  23560.,  29500.,  29860.,  35864.,  36308.,  42364.,  42896.,
      44324.,  44884.,  46284.,  46872.,  48244.,  48860.,  41600.,  42140.,
      34860.,  35320.,  28032.,  28408.,  35350.,  35800.,  44475.,  45050.,
      53695.,  54400.,  63000.,  63840.,  65205.,  66080.,  67410.,  68320.,
      69615.,  70560.,  59725.,  60550.,  49800.,  50500.,  39850.,  40420.,
      48800.,  49460.,  61090.,  61930.,  73392.,  74418.,  85694.,  86912.,
      88046.,  89306.,  90398.,  91700.,  92750.,  94094.,  79260.,  80430.,
      65830.,  66820.,  52472.,  53276.,  63070.,  63980.,  78645.,  79800.,
      94115.,  95522.,  109466., 111132., 111867., 113582., 114268., 116032.,
      116669., 118482., 99365.,  100940., 82250.,  83580.,  65338.,  66416.,
      77630.,  78820.,  96495.,  98000.,  115115., 116942., 133476., 135632.,
      135877., 138082., 138278., 140532., 140679., 142982., 119525., 121520.,
      98700.,  100380., 78218.,  79576.,  92190.,  93660.,  114345., 116200.,
      136115., 138362., 157486., 160132., 159887., 162582., 162288., 165032.,
      164689., 167482., 139685., 142100., 115150., 117180., 91098.,  92736.,
      106750., 108500., 132195., 134400., 157115., 159782., 181496., 184632.,
      183897., 187082., 186298., 189532., 188699., 191982., 159845., 162680.,
      131600., 133980., 103978., 105896., 82760.,  84380.,  102130., 104170.,
      120948., 123414., 139202., 142100., 140966., 143906., 142730., 145712.,
      144494., 147518., 121920., 124530., 99970.,  102160., 78656.,  80420.,
      60750.,  62200.,  74625.,  76450.,  87955.,  90160.,  100730., 103320.,
      101955., 104580., 103180., 105840., 104405., 107100., 87625.,  89950.,
      71450.,  73400.,  55890.,  57460.,  41280.,  42520.,  50380.,  51940.,
      58976.,  60860.,  67060.,  69272.,  67844.,  70084.,  68628.,  70896.,
      69412.,  71708.,  57800.,  59780.,  46740.,  48400.,  36240.,  37576.,
      140080., 141960., 173500., 175860., 206264., 209108., 238364., 241696.,
      240324., 243684., 242284., 245672., 244244., 247660., 207200., 210140.,
      170860., 173320., 135232., 137208., 167350., 169800., 206975., 210050.,
      245695., 249400., 283500., 287840., 285705., 290080., 287910., 292320.,
      290115., 294560., 245725., 249550., 202300., 205500., 159850., 162420.,
      190400., 193460., 235090., 238930., 278592., 283218., 320894., 326312.,
      323246., 328706., 325598., 331100., 327950., 333494., 277260., 282030.,
      227830., 231820., 179672., 182876., 208670., 212380., 257145., 261800.,
      304115., 309722., 349566., 356132., 351967., 358582., 354368., 361032.,
      356769., 363482., 300965., 306740., 246750., 251580., 194138., 198016.,
      223230., 227220., 274995., 280000., 325115., 331142., 373576., 380632.,
      375977., 383082., 378378., 385532., 380779., 387982., 321125., 327320.,
      263200., 268380., 207018., 211176., 237790., 242060., 292845., 298200.,
      346115., 352562., 397586., 405132., 399987., 407582., 402388., 410032.,
      404789., 412482., 341285., 347900., 279650., 285180., 219898., 224336.,
      252350., 256900., 310695., 316400., 367115., 373982., 421596., 429632.,
      423997., 432082., 426398., 434532., 428799., 436982., 361445., 368480.,
      296100., 301980., 232778., 237496., 190760., 194780., 234130., 239170.,
      275748., 281814., 315602., 322700., 317366., 324506., 319130., 326312.,
      320894., 328118., 269520., 275730., 219970., 225160., 172256., 176420.,
      136750., 140200., 167125., 171450., 195955., 201160., 223230., 229320.,
      224455., 230580., 225680., 231840., 226905., 233100., 189625., 194950.,
      153950., 158400., 119890., 123460., 90880.,  93720.,  110380., 113940.,
      128576., 132860., 145460., 150472., 146244., 151284., 147028., 152096.,
      147812., 152908., 122600., 126980., 98740.,  102400., 76240.,  79176.,
      256880., 260360., 317500., 321860., 376664., 381908., 434364., 440496.,
      436324., 442484., 438284., 444472., 440244., 446460., 372800., 378140.,
      306860., 311320., 242432., 246008., 299350., 303800., 369475., 375050.,
      437695., 444400., 504000., 511840., 506205., 514080., 508410., 516320.,
      510615., 518560., 431725., 438550., 354800., 360500., 279850., 284420.,
      332000., 337460., 409090., 415930., 483792., 492018., 556094., 565712.,
      558446., 568106., 560798., 570500., 563150., 572894., 475260., 483630.,
      389830., 396820., 306872., 312476., 354270., 360780., 435645., 443800.,
      514115., 523922., 589666., 601132., 592067., 603582., 594468., 606032.,
      596869., 608482., 502565., 512540., 411250., 419580., 322938., 329616.,
      368830., 375620., 453495., 462000., 535115., 545342., 613676., 625632.,
      616077., 628082., 618478., 630532., 620879., 632982., 522725., 533120.,
      427700., 436380., 335818., 342776., 383390., 390460., 471345., 480200.,
      556115., 566762., 637686., 650132., 640087., 652582., 642488., 655032.,
      644889., 657482., 542885., 553700., 444150., 453180., 348698., 355936.,
      397950., 405300., 489195., 498400., 577115., 588182., 661696., 674632.,
      664097., 677082., 666498., 679532., 668899., 681982., 563045., 574280.,
      460600., 469980., 361578., 369096., 298760., 305180., 366130., 374170.,
      430548., 440214., 492002., 503300., 493766., 505106., 495530., 506912.,
      497294., 508718., 417120., 426930., 339970., 348160., 265856., 272420.,
      212750., 218200., 259625., 266450., 303955., 312160., 345730., 355320.,
      346955., 356580., 348180., 357840., 349405., 359100., 291625., 299950.,
      236450., 243400., 183890., 189460., 140480., 144920., 170380., 175940.,
      198176., 204860., 223860., 231672., 224644., 232484., 225428., 233296.,
      226212., 234108., 187400., 194180., 150740., 156400., 116240., 120776.};
  const std::array<int, 4> in_shape = {{3, 10, 10, 1}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x10x10x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      109466., 111132., 111867., 113582., 114268., 116032., 116669., 118482.,
      133476., 135632., 135877., 138082., 138278., 140532., 140679., 142982.,
      157486., 160132., 159887., 162582., 162288., 165032., 164689., 167482.,
      181496., 184632., 183897., 187082., 186298., 189532., 188699., 191982.,
      349566., 356132., 351967., 358582., 354368., 361032., 356769., 363482.,
      373576., 380632., 375977., 383082., 378378., 385532., 380779., 387982.,
      397586., 405132., 399987., 407582., 402388., 410032., 404789., 412482.,
      421596., 429632., 423997., 432082., 426398., 434532., 428799., 436982.,
      589666., 601132., 592067., 603582., 594468., 606032., 596869., 608482.,
      613676., 625632., 616077., 628082., 618478., 630532., 620879., 632982.,
      637686., 650132., 640087., 652582., 642488., 655032., 644889., 657482.,
      661696., 674632., 664097., 677082., 666498., 679532., 668899., 681982.};
  const std::array<int, 4> in_shape = {{3, 10, 10, 1}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x10x10x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      46280.,   46560.,   46840.,   47120.,   58640.,   59000.,   59360.,
      59720.,   71284.,   71728.,   72172.,   72616.,   84196.,   84728.,
      85260.,   85792.,   88088.,   88648.,   89208.,   89768.,   91980.,
      92568.,   93156.,   93744.,   95872.,   96488.,   97104.,   97720.,
      82660.,   83200.,   83740.,   84280.,   69260.,   69720.,   70180.,
      70640.,   55688.,   56064.,   56440.,   56816.,   70250.,   70700.,
      71150.,   71600.,   88375.,   88950.,   89525.,   90100.,   106685.,
      107390.,  108095.,  108800.,  125160.,  126000.,  126840.,  127680.,
      129535.,  130410.,  131285.,  132160.,  133910.,  134820.,  135730.,
      136640.,  138285.,  139230.,  140175.,  141120.,  118625.,  119450.,
      120275.,  121100.,  98900.,   99600.,   100300.,  101000.,  79130.,
      79700.,   80270.,   80840.,   96940.,   97600.,   98260.,   98920.,
      121340.,  122180.,  123020.,  123860.,  145758.,  146784.,  147810.,
      148836.,  170170.,  171388.,  172606.,  173824.,  174832.,  176092.,
      177352.,  178612.,  179494.,  180796.,  182098.,  183400.,  184156.,
      185500.,  186844.,  188188.,  157350.,  158520.,  159690.,  160860.,
      130670.,  131660.,  132650.,  133640.,  104140.,  104944.,  105748.,
      106552.,  125230.,  126140.,  127050.,  127960.,  156135.,  157290.,
      158445.,  159600.,  186823.,  188230.,  189637.,  191044.,  217266.,
      218932.,  220598.,  222264.,  222019.,  223734.,  225449.,  227164.,
      226772.,  228536.,  230300.,  232064.,  231525.,  233338.,  235151.,
      236964.,  197155.,  198730.,  200305.,  201880.,  163170.,  164500.,
      165830.,  167160.,  129598.,  130676.,  131754.,  132832.,  154070.,
      155260.,  156450.,  157640.,  191485.,  192990.,  194495.,  196000.,
      228403.,  230230.,  232057.,  233884.,  264796.,  266952.,  269108.,
      271264.,  269549.,  271754.,  273959.,  276164.,  274302.,  276556.,
      278810.,  281064.,  279055.,  281358.,  283661.,  285964.,  237055.,
      239050.,  241045.,  243040.,  195720.,  197400.,  199080.,  200760.,
      155078.,  156436.,  157794.,  159152.,  182910.,  184380.,  185850.,
      187320.,  226835.,  228690.,  230545.,  232400.,  269983.,  272230.,
      274477.,  276724.,  312326.,  314972.,  317618.,  320264.,  317079.,
      319774.,  322469.,  325164.,  321832.,  324576.,  327320.,  330064.,
      326585.,  329378.,  332171.,  334964.,  276955.,  279370.,  281785.,
      284200.,  228270.,  230300.,  232330.,  234360.,  180558.,  182196.,
      183834.,  185472.,  211750.,  213500.,  215250.,  217000.,  262185.,
      264390.,  266595.,  268800.,  311563.,  314230.,  316897.,  319564.,
      359856.,  362992.,  366128.,  369264.,  364609.,  367794.,  370979.,
      374164.,  369362.,  372596.,  375830.,  379064.,  374115.,  377398.,
      380681.,  383964.,  316855.,  319690.,  322525.,  325360.,  260820.,
      263200.,  265580.,  267960.,  206038.,  207956.,  209874.,  211792.,
      163900.,  165520.,  167140.,  168760.,  202220.,  204260.,  206300.,
      208340.,  239430.,  241896.,  244362.,  246828.,  275506.,  278404.,
      281302.,  284200.,  278992.,  281932.,  284872.,  287812.,  282478.,
      285460.,  288442.,  291424.,  285964.,  288988.,  292012.,  295036.,
      241230.,  243840.,  246450.,  249060.,  197750.,  199940.,  202130.,
      204320.,  155548.,  157312.,  159076.,  160840.,  120050.,  121500.,
      122950.,  124400.,  147425.,  149250.,  151075.,  152900.,  173705.,
      175910.,  178115.,  180320.,  198870.,  201460.,  204050.,  206640.,
      201285.,  203910.,  206535.,  209160.,  203700.,  206360.,  209020.,
      211680.,  206115.,  208810.,  211505.,  214200.,  172925.,  175250.,
      177575.,  179900.,  140950.,  142900.,  144850.,  146800.,  110210.,
      111780.,  113350.,  114920.,  81320.,   82560.,   83800.,   85040.,
      99200.,   100760.,  102320.,  103880.,  116068.,  117952.,  119836.,
      121720.,  131908.,  134120.,  136332.,  138544.,  133448.,  135688.,
      137928.,  140168.,  134988.,  137256.,  139524.,  141792.,  136528.,
      138824.,  141120.,  143416.,  113620.,  115600.,  117580.,  119560.,
      91820.,   93480.,   95140.,   96800.,   71144.,   72480.,   73816.,
      75152.,   278280.,  280160.,  282040.,  283920.,  344640.,  347000.,
      349360.,  351720.,  409684.,  412528.,  415372.,  418216.,  473396.,
      476728.,  480060.,  483392.,  477288.,  480648.,  484008.,  487368.,
      481180.,  484568.,  487956.,  491344.,  485072.,  488488.,  491904.,
      495320.,  411460.,  414400.,  417340.,  420280.,  339260.,  341720.,
      344180.,  346640.,  268488.,  270464.,  272440.,  274416.,  332250.,
      334700.,  337150.,  339600.,  410875.,  413950.,  417025.,  420100.,
      487685.,  491390.,  495095.,  498800.,  562660.,  567000.,  571340.,
      575680.,  567035.,  571410.,  575785.,  580160.,  571410.,  575820.,
      580230.,  584640.,  575785.,  580230.,  584675.,  589120.,  487625.,
      491450.,  495275.,  499100.,  401400.,  404600.,  407800.,  411000.,
      317130.,  319700.,  322270.,  324840.,  377740.,  380800.,  383860.,
      386920.,  466340.,  470180.,  474020.,  477860.,  552558.,  557184.,
      561810.,  566436.,  636370.,  641788.,  647206.,  652624.,  641032.,
      646492.,  651952.,  657412.,  645694.,  651196.,  656698.,  662200.,
      650356.,  655900.,  661444.,  666988.,  549750.,  554520.,  559290.,
      564060.,  451670.,  455660.,  459650.,  463640.,  356140.,  359344.,
      362548.,  365752.,  413630.,  417340.,  421050.,  424760.,  509635.,
      514290.,  518945.,  523600.,  602623.,  608230.,  613837.,  619444.,
      692566.,  699132.,  705698.,  712264.,  697319.,  703934.,  710549.,
      717164.,  702072.,  708736.,  715400.,  722064.,  706825.,  713538.,
      720251.,  726964.,  596155.,  601930.,  607705.,  613480.,  488670.,
      493500.,  498330.,  503160.,  384398.,  388276.,  392154.,  396032.,
      442470.,  446460.,  450450.,  454440.,  544985.,  549990.,  554995.,
      560000.,  644203.,  650230.,  656257.,  662284.,  740096.,  747152.,
      754208.,  761264.,  744849.,  751954.,  759059.,  766164.,  749602.,
      756756.,  763910.,  771064.,  754355.,  761558.,  768761.,  775964.,
      636055.,  642250.,  648445.,  654640.,  521220.,  526400.,  531580.,
      536760.,  409878.,  414036.,  418194.,  422352.,  471310.,  475580.,
      479850.,  484120.,  580335.,  585690.,  591045.,  596400.,  685783.,
      692230.,  698677.,  705124.,  787626.,  795172.,  802718.,  810264.,
      792379.,  799974.,  807569.,  815164.,  797132.,  804776.,  812420.,
      820064.,  801885.,  809578.,  817271.,  824964.,  675955.,  682570.,
      689185.,  695800.,  553770.,  559300.,  564830.,  570360.,  435358.,
      439796.,  444234.,  448672.,  500150.,  504700.,  509250.,  513800.,
      615685.,  621390.,  627095.,  632800.,  727363.,  734230.,  741097.,
      747964.,  835156.,  843192.,  851228.,  859264.,  839909.,  847994.,
      856079.,  864164.,  844662.,  852796.,  860930.,  869064.,  849415.,
      857598.,  865781.,  873964.,  715855.,  722890.,  729925.,  736960.,
      586320.,  592200.,  598080.,  603960.,  460838.,  465556.,  470274.,
      474992.,  377500.,  381520.,  385540.,  389560.,  463220.,  468260.,
      473300.,  478340.,  545430.,  551496.,  557562.,  563628.,  624106.,
      631204.,  638302.,  645400.,  627592.,  634732.,  641872.,  649012.,
      631078.,  638260.,  645442.,  652624.,  634564.,  641788.,  649012.,
      656236.,  532830.,  539040.,  545250.,  551460.,  434750.,  439940.,
      445130.,  450320.,  340348.,  344512.,  348676.,  352840.,  270050.,
      273500.,  276950.,  280400.,  329925.,  334250.,  338575.,  342900.,
      386705.,  391910.,  397115.,  402320.,  440370.,  446460.,  452550.,
      458640.,  442785.,  448910.,  455035.,  461160.,  445200.,  451360.,
      457520.,  463680.,  447615.,  453810.,  460005.,  466200.,  373925.,
      379250.,  384575.,  389900.,  303450.,  307900.,  312350.,  316800.,
      236210.,  239780.,  243350.,  246920.,  178920.,  181760.,  184600.,
      187440.,  217200.,  220760.,  224320.,  227880.,  252868.,  257152.,
      261436.,  265720.,  285908.,  290920.,  295932.,  300944.,  287448.,
      292488.,  297528.,  302568.,  288988.,  294056.,  299124.,  304192.,
      290528.,  295624.,  300720.,  305816.,  240820.,  245200.,  249580.,
      253960.,  193820.,  197480.,  201140.,  204800.,  149544.,  152480.,
      155416.,  158352.,  510280.,  513760.,  517240.,  520720.,  630640.,
      635000.,  639360.,  643720.,  748084.,  753328.,  758572.,  763816.,
      862596.,  868728.,  874860.,  880992.,  866488.,  872648.,  878808.,
      884968.,  870380.,  876568.,  882756.,  888944.,  874272.,  880488.,
      886704.,  892920.,  740260.,  745600.,  750940.,  756280.,  609260.,
      613720.,  618180.,  622640.,  481288.,  484864.,  488440.,  492016.,
      594250.,  598700.,  603150.,  607600.,  733375.,  738950.,  744525.,
      750100.,  868685.,  875390.,  882095.,  888800.,  1000160., 1008000.,
      1015840., 1023680., 1004535., 1012410., 1020285., 1028160., 1008910.,
      1016820., 1024730., 1032640., 1013285., 1021230., 1029175., 1037120.,
      856625.,  863450.,  870275.,  877100.,  703900.,  709600.,  715300.,
      721000.,  555130.,  559700.,  564270.,  568840.,  658540.,  664000.,
      669460.,  674920.,  811340.,  818180.,  825020.,  831860.,  959358.,
      967584.,  975810.,  984036.,  1102570., 1112188., 1121806., 1131424.,
      1107232., 1116892., 1126552., 1136212., 1111894., 1121596., 1131298.,
      1141000., 1116556., 1126300., 1136044., 1145788., 942150.,  950520.,
      958890.,  967260.,  772670.,  779660.,  786650.,  793640.,  608140.,
      613744.,  619348.,  624952.,  702030.,  708540.,  715050.,  721560.,
      863135.,  871290.,  879445.,  887600.,  1018423., 1028230., 1038037.,
      1047844., 1167866., 1179332., 1190798., 1202264., 1172619., 1184134.,
      1195649., 1207164., 1177372., 1188936., 1200500., 1212064., 1182125.,
      1193738., 1205351., 1216964., 995155.,  1005130., 1015105., 1025080.,
      814170.,  822500.,  830830.,  839160.,  639198.,  645876.,  652554.,
      659232.,  730870.,  737660.,  744450.,  751240.,  898485.,  906990.,
      915495.,  924000.,  1060003., 1070230., 1080457., 1090684., 1215396.,
      1227352., 1239308., 1251264., 1220149., 1232154., 1244159., 1256164.,
      1224902., 1236956., 1249010., 1261064., 1229655., 1241758., 1253861.,
      1265964., 1035055., 1045450., 1055845., 1066240., 846720.,  855400.,
      864080.,  872760.,  664678.,  671636.,  678594.,  685552.,  759710.,
      766780.,  773850.,  780920.,  933835.,  942690.,  951545.,  960400.,
      1101583., 1112230., 1122877., 1133524., 1262926., 1275372., 1287818.,
      1300264., 1267679., 1280174., 1292669., 1305164., 1272432., 1284976.,
      1297520., 1310064., 1277185., 1289778., 1302371., 1314964., 1074955.,
      1085770., 1096585., 1107400., 879270.,  888300.,  897330.,  906360.,
      690158.,  697396.,  704634.,  711872.,  788550.,  795900.,  803250.,
      810600.,  969185.,  978390.,  987595.,  996800.,  1143163., 1154230.,
      1165297., 1176364., 1310456., 1323392., 1336328., 1349264., 1315209.,
      1328194., 1341179., 1354164., 1319962., 1332996., 1346030., 1359064.,
      1324715., 1337798., 1350881., 1363964., 1114855., 1126090., 1137325.,
      1148560., 911820.,  921200.,  930580.,  939960.,  715638.,  723156.,
      730674.,  738192.,  591100.,  597520.,  603940.,  610360.,  724220.,
      732260.,  740300.,  748340.,  851430.,  861096.,  870762.,  880428.,
      972706.,  984004.,  995302.,  1006600., 976192.,  987532.,  998872.,
      1010212., 979678.,  991060.,  1002442., 1013824., 983164.,  994588.,
      1006012., 1017436., 824430.,  834240.,  844050.,  853860.,  671750.,
      679940.,  688130.,  696320.,  525148.,  531712.,  538276.,  544840.,
      420050.,  425500.,  430950.,  436400.,  512425.,  519250.,  526075.,
      532900.,  599705.,  607910.,  616115.,  624320.,  681870.,  691460.,
      701050.,  710640.,  684285.,  693910.,  703535.,  713160.,  686700.,
      696360.,  706020.,  715680.,  689115.,  698810.,  708505.,  718200.,
      574925.,  583250.,  591575.,  599900.,  465950.,  472900.,  479850.,
      486800.,  362210.,  367780.,  373350.,  378920.,  276520.,  280960.,
      285400.,  289840.,  335200.,  340760.,  346320.,  351880.,  389668.,
      396352.,  403036.,  409720.,  439908.,  447720.,  455532.,  463344.,
      441448.,  449288.,  457128.,  464968.,  442988.,  450856.,  458724.,
      466592.,  444528.,  452424.,  460320.,  468216.,  368020.,  374800.,
      381580.,  388360.,  295820.,  301480.,  307140.,  312800.,  227944.,
      232480.,  237016.,  241552.};
  const std::array<int, 4> in_shape = {{3, 10, 10, 1}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x10x10x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      217266.,  218932.,  220598.,  222264.,  222019.,  223734.,  225449.,
      227164.,  226772.,  228536.,  230300.,  232064.,  231525.,  233338.,
      235151.,  236964.,  264796.,  266952.,  269108.,  271264.,  269549.,
      271754.,  273959.,  276164.,  274302.,  276556.,  278810.,  281064.,
      279055.,  281358.,  283661.,  285964.,  312326.,  314972.,  317618.,
      320264.,  317079.,  319774.,  322469.,  325164.,  321832.,  324576.,
      327320.,  330064.,  326585.,  329378.,  332171.,  334964.,  359856.,
      362992.,  366128.,  369264.,  364609.,  367794.,  370979.,  374164.,
      369362.,  372596.,  375830.,  379064.,  374115.,  377398.,  380681.,
      383964.,  692566.,  699132.,  705698.,  712264.,  697319.,  703934.,
      710549.,  717164.,  702072.,  708736.,  715400.,  722064.,  706825.,
      713538.,  720251.,  726964.,  740096.,  747152.,  754208.,  761264.,
      744849.,  751954.,  759059.,  766164.,  749602.,  756756.,  763910.,
      771064.,  754355.,  761558.,  768761.,  775964.,  787626.,  795172.,
      802718.,  810264.,  792379.,  799974.,  807569.,  815164.,  797132.,
      804776.,  812420.,  820064.,  801885.,  809578.,  817271.,  824964.,
      835156.,  843192.,  851228.,  859264.,  839909.,  847994.,  856079.,
      864164.,  844662.,  852796.,  860930.,  869064.,  849415.,  857598.,
      865781.,  873964.,  1167866., 1179332., 1190798., 1202264., 1172619.,
      1184134., 1195649., 1207164., 1177372., 1188936., 1200500., 1212064.,
      1182125., 1193738., 1205351., 1216964., 1215396., 1227352., 1239308.,
      1251264., 1220149., 1232154., 1244159., 1256164., 1224902., 1236956.,
      1249010., 1261064., 1229655., 1241758., 1253861., 1265964., 1262926.,
      1275372., 1287818., 1300264., 1267679., 1280174., 1292669., 1305164.,
      1272432., 1284976., 1297520., 1310064., 1277185., 1289778., 1302371.,
      1314964., 1310456., 1323392., 1336328., 1349264., 1315209., 1328194.,
      1341179., 1354164., 1319962., 1332996., 1346030., 1359064., 1324715.,
      1337798., 1350881., 1363964.};
  const std::array<int, 4> in_shape = {{3, 10, 10, 1}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x10x10x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      92512.,   117280.,  142640.,  168560.,  176456.,  184352.,  192248.,
      165824.,  139000.,  111808.,  140980.,  177425.,  214270.,  251475.,
      260365.,  269255.,  278145.,  238690.,  199075.,  159340.,  195104.,
      244300.,  293568.,  342860.,  352352.,  361844.,  371336.,  317400.,
      263680.,  210224.,  252644.,  315105.,  377174.,  438795.,  448497.,
      458199.,  467901.,  398594.,  330015.,  262220.,  311444.,  387205.,
      462014.,  535815.,  545517.,  555219.,  564921.,  480074.,  396515.,
      314300.,  370244.,  459305.,  546854.,  632835.,  642537.,  652239.,
      661941.,  561554.,  463015.,  366380.,  429044.,  531405.,  631694.,
      729855.,  739557.,  749259.,  758961.,  643034.,  529515.,  418460.,
      333200.,  411280.,  487176.,  560840.,  567980.,  575120.,  582260.,
      491424.,  403060.,  317216.,  245140.,  301225.,  355150.,  406875.,
      411845.,  416815.,  421785.,  354130.,  288875.,  226060.,  167104.,
      204040.,  238976.,  271880.,  275072.,  278264.,  281456.,  234512.,
      189760.,  147232.,  562912.,  697280.,  829040.,  958160.,  966056.,
      973952.,  981848.,  833024.,  687000.,  543808.,  672980.,  832425.,
      988270.,  1140475., 1149365., 1158255., 1167145., 988690.,  814075.,
      643340.,  766304.,  946300.,  1121568., 1292060., 1301552., 1311044.,
      1320536., 1116600., 917680.,  723824.,  840644.,  1036105., 1225574.,
      1408995., 1418697., 1428399., 1438101., 1213394., 995015.,  783020.,
      899444.,  1108205., 1310414., 1506015., 1515717., 1525419., 1535121.,
      1294874., 1061515., 835100.,  958244.,  1180305., 1395254., 1603035.,
      1612737., 1622439., 1632141., 1376354., 1128015., 887180.,  1017044.,
      1252405., 1480094., 1700055., 1709757., 1719459., 1729161., 1457834.,
      1194515., 939260.,  770000.,  945280.,  1113576., 1274840., 1281980.,
      1289120., 1296260., 1089024., 889060.,  696416.,  553140.,  676225.,
      793150.,  903875.,  908845.,  913815.,  918785.,  768130.,  623875.,
      486060.,  368704.,  448040.,  522176.,  591080.,  594272.,  597464.,
      600656.,  498512.,  401760.,  310432.,  1033312., 1277280., 1515440.,
      1747760., 1755656., 1763552., 1771448., 1500224., 1235000., 975808.,
      1204980., 1487425., 1762270., 2029475., 2038365., 2047255., 2056145.,
      1738690., 1429075., 1127340., 1337504., 1648300., 1949568., 2241260.,
      2250752., 2260244., 2269736., 1915800., 1571680., 1237424., 1428644.,
      1757105., 2073974., 2379195., 2388897., 2398599., 2408301., 2028194.,
      1660015., 1303820., 1487444., 1829205., 2158814., 2476215., 2485917.,
      2495619., 2505321., 2109674., 1726515., 1355900., 1546244., 1901305.,
      2243654., 2573235., 2582937., 2592639., 2602341., 2191154., 1793015.,
      1407980., 1605044., 1973405., 2328494., 2670255., 2679957., 2689659.,
      2699361., 2272634., 1859515., 1460060., 1206800., 1479280., 1739976.,
      1988840., 1995980., 2003120., 2010260., 1686624., 1375060., 1075616.,
      861140.,  1051225., 1231150., 1400875., 1405845., 1410815., 1415785.,
      1182130., 958875.,  746060.,  570304.,  692040.,  805376.,  910280.,
      913472.,  916664.,  919856.,  762512.,  613760.,  473632.};
  const std::array<int, 4> in_shape = {{3, 10, 10, 2}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x10x10x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      438795.,  448497.,  458199.,  467901.,  535815.,  545517.,  555219.,
      564921.,  632835.,  642537.,  652239.,  661941.,  729855.,  739557.,
      749259.,  758961.,  1408995., 1418697., 1428399., 1438101., 1506015.,
      1515717., 1525419., 1535121., 1603035., 1612737., 1622439., 1632141.,
      1700055., 1709757., 1719459., 1729161., 2379195., 2388897., 2398599.,
      2408301., 2476215., 2485917., 2495619., 2505321., 2573235., 2582937.,
      2592639., 2602341., 2670255., 2679957., 2689659., 2699361.};
  const std::array<int, 4> in_shape = {{3, 10, 10, 2}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x10x10x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      183920.,  185024.,  233140.,  234560.,  283528.,  285280.,  335020.,
      337120.,  350700.,  352912.,  366380.,  368704.,  382060.,  384496.,
      329512.,  331648.,  276180.,  278000.,  222128.,  223616.,  280180.,
      281960.,  352575.,  354850.,  425750.,  428540.,  499625.,  502950.,
      517265.,  520730.,  534905.,  538510.,  552545.,  556290.,  474110.,
      477380.,  395375.,  398150.,  316420.,  318680.,  387592.,  390208.,
      485270.,  488600.,  583068.,  587136.,  680890.,  685720.,  699706.,
      704704.,  718522.,  723688.,  737338.,  742672.,  630156.,  634800.,
      523430.,  527360.,  417256.,  420448.,  501676.,  505288.,  625625.,
      630210.,  748762.,  754348.,  870975.,  877590.,  890183.,  896994.,
      909391.,  916398.,  928599.,  935802.,  790930.,  797188.,  654745.,
      660030.,  520156.,  524440.,  618156.,  622888.,  768425.,  774410.,
      916762.,  924028.,  1063055., 1071630., 1082263., 1091034., 1101471.,
      1110438., 1120679., 1129842., 952210.,  960148.,  786345.,  793030.,
      623196.,  628600.,  734636.,  740488.,  911225.,  918610.,  1084762.,
      1093708., 1255135., 1265670., 1274343., 1285074., 1293551., 1304478.,
      1312759., 1323882., 1113490., 1123108., 917945.,  926030.,  726236.,
      732760.,  851116.,  858088.,  1054025., 1062810., 1252762., 1263388.,
      1447215., 1459710., 1466423., 1479114., 1485631., 1498518., 1504839.,
      1517922., 1274770., 1286068., 1049545., 1059030., 829276.,  836920.,
      659944.,  666400.,  814430.,  822560.,  964524.,  974352.,  1110130.,
      1121680., 1124242., 1135960., 1138354., 1150240., 1152466., 1164520.,
      972444.,  982848.,  797390.,  806120.,  627400.,  634432.,  484500.,
      490280.,  595175.,  602450.,  701510.,  710300.,  803425.,  813750.,
      813225.,  823690.,  823025.,  833630.,  832825.,  843570.,  698990.,
      708260.,  569975.,  577750.,  445860.,  452120.,  329264.,  334208.,
      401860.,  408080.,  470440.,  477952.,  534940.,  543760.,  541212.,
      550144.,  547484.,  556528.,  553756.,  562912.,  461128.,  469024.,
      372900.,  379520.,  289136.,  294464.,  1118320., 1125824., 1385140.,
      1394560., 1646728., 1658080., 1903020., 1916320., 1918700., 1932112.,
      1934380., 1947904., 1950060., 1963696., 1654312., 1666048., 1364180.,
      1374000., 1079728., 1087616., 1336180., 1345960., 1652575., 1664850.,
      1961750., 1976540., 2263625., 2280950., 2281265., 2298730., 2298905.,
      2316510., 2316545., 2334290., 1962110., 1977380., 1615375., 1628150.,
      1276420., 1286680., 1520392., 1532608., 1877270., 1892600., 2224668.,
      2243136., 2562490., 2584120., 2581306., 2603104., 2600122., 2622088.,
      2618938., 2641072., 2214156., 2233200., 1819430., 1835360., 1434856.,
      1447648., 1666476., 1681288., 2053625., 2072210., 2428762., 2451148.,
      2791775., 2817990., 2810983., 2837394., 2830191., 2856798., 2849399.,
      2876202., 2403730., 2426788., 1970745., 1990030., 1550556., 1566040.,
      1782956., 1798888., 2196425., 2216410., 2596762., 2620828., 2983855.,
      3012030., 3003063., 3031434., 3022271., 3050838., 3041479., 3070242.,
      2565010., 2589748., 2102345., 2123030., 1653596., 1670200., 1899436.,
      1916488., 2339225., 2360610., 2764762., 2790508., 3175935., 3206070.,
      3195143., 3225474., 3214351., 3244878., 3233559., 3264282., 2726290.,
      2752708., 2233945., 2256030., 1756636., 1774360., 2015916., 2034088.,
      2482025., 2504810., 2932762., 2960188., 3368015., 3400110., 3387223.,
      3419514., 3406431., 3438918., 3425639., 3458322., 2887570., 2915668.,
      2365545., 2389030., 1859676., 1878520., 1523944., 1540000., 1870430.,
      1890560., 2202924., 2227152., 2521330., 2549680., 2535442., 2563960.,
      2549554., 2578240., 2563666., 2592520., 2153244., 2178048., 1757390.,
      1778120., 1376200., 1392832., 1092500., 1106280., 1335175., 1352450.,
      1565510., 1586300., 1783425., 1807750., 1793225., 1817690., 1803025.,
      1827630., 1812825., 1837570., 1514990., 1536260., 1229975., 1247750.,
      957860.,  972120.,  726064.,  737408.,  881860.,  896080.,  1027240.,
      1044352., 1162140., 1182160., 1168412., 1188544., 1174684., 1194928.,
      1180956., 1201312., 979528.,  997024.,  788900.,  803520.,  609136.,
      620864.,  2052720., 2066624., 2537140., 2554560., 3009928., 3030880.,
      3471020., 3495520., 3486700., 3511312., 3502380., 3527104., 3518060.,
      3542896., 2979112., 3000448., 2452180., 2470000., 1937328., 1951616.,
      2392180., 2409960., 2952575., 2974850., 3497750., 3524540., 4027625.,
      4058950., 4045265., 4076730., 4062905., 4094510., 4080545., 4112290.,
      3450110., 3477380., 2835375., 2858150., 2236420., 2254680., 2653192.,
      2675008., 3269270., 3296600., 3866268., 3899136., 4444090., 4482520.,
      4462906., 4501504., 4481722., 4520488., 4500538., 4539472., 3798156.,
      3831600., 3115430., 3143360., 2452456., 2474848., 2831276., 2857288.,
      3481625., 3514210., 4108762., 4147948., 4712575., 4758390., 4731783.,
      4777794., 4750991., 4797198., 4770199., 4816602., 4016530., 4056388.,
      3286745., 3320030., 2580956., 2607640., 2947756., 2974888., 3624425.,
      3658410., 4276762., 4317628., 4904655., 4952430., 4923863., 4971834.,
      4943071., 4991238., 4962279., 5010642., 4177810., 4219348., 3418345.,
      3453030., 2683996., 2711800., 3064236., 3092488., 3767225., 3802610.,
      4444762., 4487308., 5096735., 5146470., 5115943., 5165874., 5135151.,
      5185278., 5154359., 5204682., 4339090., 4382308., 3549945., 3586030.,
      2787036., 2815960., 3180716., 3210088., 3910025., 3946810., 4612762.,
      4656988., 5288815., 5340510., 5308023., 5359914., 5327231., 5379318.,
      5346439., 5398722., 4500370., 4545268., 3681545., 3719030., 2890076.,
      2920120., 2387944., 2413600., 2926430., 2958560., 3441324., 3479952.,
      3932530., 3977680., 3946642., 3991960., 3960754., 4006240., 3974866.,
      4020520., 3334044., 3373248., 2717390., 2750120., 2125000., 2151232.,
      1700500., 1722280., 2075175., 2102450., 2429510., 2462300., 2763425.,
      2801750., 2773225., 2811690., 2783025., 2821630., 2792825., 2831570.,
      2330990., 2364260., 1889975., 1917750., 1469860., 1492120., 1122864.,
      1140608., 1361860., 1384080., 1584040., 1610752., 1789340., 1820560.,
      1795612., 1826944., 1801884., 1833328., 1808156., 1839712., 1497928.,
      1525024., 1204900., 1227520., 929136.,  947264.};
  const std::array<int, 4> in_shape = {{3, 10, 10, 2}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x10x10x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      870975.,  877590.,  890183.,  896994.,  909391.,  916398.,  928599.,
      935802.,  1063055., 1071630., 1082263., 1091034., 1101471., 1110438.,
      1120679., 1129842., 1255135., 1265670., 1274343., 1285074., 1293551.,
      1304478., 1312759., 1323882., 1447215., 1459710., 1466423., 1479114.,
      1485631., 1498518., 1504839., 1517922., 2791775., 2817990., 2810983.,
      2837394., 2830191., 2856798., 2849399., 2876202., 2983855., 3012030.,
      3003063., 3031434., 3022271., 3050838., 3041479., 3070242., 3175935.,
      3206070., 3195143., 3225474., 3214351., 3244878., 3233559., 3264282.,
      3368015., 3400110., 3387223., 3419514., 3406431., 3438918., 3425639.,
      3458322., 4712575., 4758390., 4731783., 4777794., 4750991., 4797198.,
      4770199., 4816602., 4904655., 4952430., 4923863., 4971834., 4943071.,
      4991238., 4962279., 5010642., 5096735., 5146470., 5115943., 5165874.,
      5135151., 5185278., 5154359., 5204682., 5288815., 5340510., 5308023.,
      5359914., 5327231., 5379318., 5346439., 5398722.};
  const std::array<int, 4> in_shape = {{3, 10, 10, 2}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x10x10x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      366736.,   367840.,   368944.,   370048.,   464860.,   466280.,
      467700.,   469120.,   565304.,   567056.,   568808.,   570560.,
      667940.,   670040.,   672140.,   674240.,   699188.,   701400.,
      703612.,   705824.,   730436.,   732760.,   735084.,   737408.,
      761684.,   764120.,   766556.,   768992.,   656888.,   659024.,
      661160.,   663296.,   550540.,   552360.,   554180.,   556000.,
      442768.,   444256.,   445744.,   447232.,   558580.,   560360.,
      562140.,   563920.,   702875.,   705150.,   707425.,   709700.,
      848710.,   851500.,   854290.,   857080.,   995925.,   999250.,
      1002575.,  1005900.,  1031065.,  1034530.,  1037995.,  1041460.,
      1066205.,  1069810.,  1073415.,  1077020.,  1101345.,  1105090.,
      1108835.,  1112580.,  944950.,   948220.,   951490.,   954760.,
      787975.,   790750.,   793525.,   796300.,   630580.,   632840.,
      635100.,   637360.,   772568.,   775184.,   777800.,   780416.,
      967210.,   970540.,   973870.,   977200.,   1162068.,  1166136.,
      1170204.,  1174272.,  1356950.,  1361780.,  1366610.,  1371440.,
      1394414.,  1399412.,  1404410.,  1409408.,  1431878.,  1437044.,
      1442210.,  1447376.,  1469342.,  1474676.,  1480010.,  1485344.,
      1255668.,  1260312.,  1264956.,  1269600.,  1042930.,  1046860.,
      1050790.,  1054720.,  831320.,   834512.,   837704.,   840896.,
      999740.,   1003352.,  1006964.,  1010576.,  1246665.,  1251250.,
      1255835.,  1260420.,  1491938.,  1497524.,  1503110.,  1508696.,
      1735335.,  1741950.,  1748565.,  1755180.,  1773555.,  1780366.,
      1787177.,  1793988.,  1811775.,  1818782.,  1825789.,  1832796.,
      1849995.,  1857198.,  1864401.,  1871604.,  1575602.,  1581860.,
      1588118.,  1594376.,  1304205.,  1309490.,  1314775.,  1320060.,
      1036028.,  1040312.,  1044596.,  1048880.,  1231580.,  1236312.,
      1241044.,  1245776.,  1530865.,  1536850.,  1542835.,  1548820.,
      1826258.,  1833524.,  1840790.,  1848056.,  2117535.,  2126110.,
      2134685.,  2143260.,  2155755.,  2164526.,  2173297.,  2182068.,
      2193975.,  2202942.,  2211909.,  2220876.,  2232195.,  2241358.,
      2250521.,  2259684.,  1896482.,  1904420.,  1912358.,  1920296.,
      1566005.,  1572690.,  1579375.,  1586060.,  1240988.,  1246392.,
      1251796.,  1257200.,  1463420.,  1469272.,  1475124.,  1480976.,
      1815065.,  1822450.,  1829835.,  1837220.,  2160578.,  2169524.,
      2178470.,  2187416.,  2499735.,  2510270.,  2520805.,  2531340.,
      2537955.,  2548686.,  2559417.,  2570148.,  2576175.,  2587102.,
      2598029.,  2608956.,  2614395.,  2625518.,  2636641.,  2647764.,
      2217362.,  2226980.,  2236598.,  2246216.,  1827805.,  1835890.,
      1843975.,  1852060.,  1445948.,  1452472.,  1458996.,  1465520.,
      1695260.,  1702232.,  1709204.,  1716176.,  2099265.,  2108050.,
      2116835.,  2125620.,  2494898.,  2505524.,  2516150.,  2526776.,
      2881935.,  2894430.,  2906925.,  2919420.,  2920155.,  2932846.,
      2945537.,  2958228.,  2958375.,  2971262.,  2984149.,  2997036.,
      2996595.,  3009678.,  3022761.,  3035844.,  2538242.,  2549540.,
      2560838.,  2572136.,  2089605.,  2099090.,  2108575.,  2118060.,
      1650908.,  1658552.,  1666196.,  1673840.,  1313432.,  1319888.,
      1326344.,  1332800.,  1620730.,  1628860.,  1636990.,  1645120.,
      1919220.,  1929048.,  1938876.,  1948704.,  2208710.,  2220260.,
      2231810.,  2243360.,  2236766.,  2248484.,  2260202.,  2271920.,
      2264822.,  2276708.,  2288594.,  2300480.,  2292878.,  2304932.,
      2316986.,  2329040.,  1934484.,  1944888.,  1955292.,  1965696.,
      1586050.,  1594780.,  1603510.,  1612240.,  1247768.,  1254800.,
      1261832.,  1268864.,  963220.,   969000.,   974780.,   980560.,
      1183075.,  1190350.,  1197625.,  1204900.,  1394230.,  1403020.,
      1411810.,  1420600.,  1596525.,  1606850.,  1617175.,  1627500.,
      1615985.,  1626450.,  1636915.,  1647380.,  1635445.,  1646050.,
      1656655.,  1667260.,  1654905.,  1665650.,  1676395.,  1687140.,
      1388710.,  1397980.,  1407250.,  1416520.,  1132175.,  1139950.,
      1147725.,  1155500.,  885460.,   891720.,   897980.,   904240.,
      653584.,   658528.,   663472.,   668416.,   797500.,   803720.,
      809940.,   816160.,   933368.,   940880.,   948392.,   955904.,
      1061060.,  1069880.,  1078700.,  1087520.,  1073492.,  1082424.,
      1091356.,  1100288.,  1085924.,  1094968.,  1104012.,  1113056.,
      1098356.,  1107512.,  1116668.,  1125824.,  914360.,   922256.,
      930152.,   938048.,   739180.,   745800.,   752420.,   759040.,
      572944.,   578272.,   583600.,   588928.,   2229136.,  2236640.,
      2244144.,  2251648.,  2760860.,  2770280.,  2779700.,  2789120.,
      3282104.,  3293456.,  3304808.,  3316160.,  3792740.,  3806040.,
      3819340.,  3832640.,  3823988.,  3837400.,  3850812.,  3864224.,
      3855236.,  3868760.,  3882284.,  3895808.,  3886484.,  3900120.,
      3913756.,  3927392.,  3296888.,  3308624.,  3320360.,  3332096.,
      2718540.,  2728360.,  2738180.,  2748000.,  2151568.,  2159456.,
      2167344.,  2175232.,  2662580.,  2672360.,  2682140.,  2691920.,
      3292875.,  3305150.,  3317425.,  3329700.,  3908710.,  3923500.,
      3938290.,  3953080.,  4509925.,  4527250.,  4544575.,  4561900.,
      4545065.,  4562530.,  4579995.,  4597460.,  4580205.,  4597810.,
      4615415.,  4633020.,  4615345.,  4633090.,  4650835.,  4668580.,
      3908950.,  3924220.,  3939490.,  3954760.,  3217975.,  3230750.,
      3243525.,  3256300.,  2542580.,  2552840.,  2563100.,  2573360.,
      3028568.,  3040784.,  3053000.,  3065216.,  3739210.,  3754540.,
      3769870.,  3785200.,  4430868.,  4449336.,  4467804.,  4486272.,
      5103350.,  5124980.,  5146610.,  5168240.,  5140814.,  5162612.,
      5184410.,  5206208.,  5178278.,  5200244.,  5222210.,  5244176.,
      5215742.,  5237876.,  5260010.,  5282144.,  4409268.,  4428312.,
      4447356.,  4466400.,  3622930.,  3638860.,  3654790.,  3670720.,
      2856920.,  2869712.,  2882504.,  2895296.,  3318140.,  3332952.,
      3347764.,  3362576.,  4088665.,  4107250.,  4125835.,  4144420.,
      4835138.,  4857524.,  4879910.,  4902296.,  5557335.,  5583550.,
      5609765.,  5635980.,  5595555.,  5621966.,  5648377.,  5674788.,
      5633775.,  5660382.,  5686989.,  5713596.,  5671995.,  5698798.,
      5725601.,  5752404.,  4784402.,  4807460.,  4830518.,  4853576.,
      3922205.,  3941490.,  3960775.,  3980060.,  3085628.,  3101112.,
      3116596.,  3132080.,  3549980.,  3565912.,  3581844.,  3597776.,
      4372865.,  4392850.,  4412835.,  4432820.,  5169458.,  5193524.,
      5217590.,  5241656.,  5939535.,  5967710.,  5995885.,  6024060.,
      5977755.,  6006126.,  6034497.,  6062868.,  6015975.,  6044542.,
      6073109.,  6101676.,  6054195.,  6082958.,  6111721.,  6140484.,
      5105282.,  5130020.,  5154758.,  5179496.,  4184005.,  4204690.,
      4225375.,  4246060.,  3290588.,  3307192.,  3323796.,  3340400.,
      3781820.,  3798872.,  3815924.,  3832976.,  4657065.,  4678450.,
      4699835.,  4721220.,  5503778.,  5529524.,  5555270.,  5581016.,
      6321735.,  6351870.,  6382005.,  6412140.,  6359955.,  6390286.,
      6420617.,  6450948.,  6398175.,  6428702.,  6459229.,  6489756.,
      6436395.,  6467118.,  6497841.,  6528564.,  5426162.,  5452580.,
      5478998.,  5505416.,  4445805.,  4467890.,  4489975.,  4512060.,
      3495548.,  3513272.,  3530996.,  3548720.,  4013660.,  4031832.,
      4050004.,  4068176.,  4941265.,  4964050.,  4986835.,  5009620.,
      5838098.,  5865524.,  5892950.,  5920376.,  6703935.,  6736030.,
      6768125.,  6800220.,  6742155.,  6774446.,  6806737.,  6839028.,
      6780375.,  6812862.,  6845349.,  6877836.,  6818595.,  6851278.,
      6883961.,  6916644.,  5747042.,  5775140.,  5803238.,  5831336.,
      4707605.,  4731090.,  4754575.,  4778060.,  3700508.,  3719352.,
      3738196.,  3757040.,  3031832.,  3047888.,  3063944.,  3080000.,
      3720730.,  3740860.,  3760990.,  3781120.,  4381620.,  4405848.,
      4430076.,  4454304.,  5014310.,  5042660.,  5071010.,  5099360.,
      5042366.,  5070884.,  5099402.,  5127920.,  5070422.,  5099108.,
      5127794.,  5156480.,  5098478.,  5127332.,  5156186.,  5185040.,
      4281684.,  4306488.,  4331292.,  4356096.,  3494050.,  3514780.,
      3535510.,  3556240.,  2735768.,  2752400.,  2769032.,  2785664.,
      2171220.,  2185000.,  2198780.,  2212560.,  2653075.,  2670350.,
      2687625.,  2704900.,  3110230.,  3131020.,  3151810.,  3172600.,
      3542525.,  3566850.,  3591175.,  3615500.,  3561985.,  3586450.,
      3610915.,  3635380.,  3581445.,  3606050.,  3630655.,  3655260.,
      3600905.,  3625650.,  3650395.,  3675140.,  3008710.,  3029980.,
      3051250.,  3072520.,  2442175.,  2459950.,  2477725.,  2495500.,
      1901460.,  1915720.,  1929980.,  1944240.,  1440784.,  1452128.,
      1463472.,  1474816.,  1749500.,  1763720.,  1777940.,  1792160.,
      2037368.,  2054480.,  2071592.,  2088704.,  2304260.,  2324280.,
      2344300.,  2364320.,  2316692.,  2336824.,  2356956.,  2377088.,
      2329124.,  2349368.,  2369612.,  2389856.,  2341556.,  2361912.,
      2382268.,  2402624.,  1941560.,  1959056.,  1976552.,  1994048.,
      1563180.,  1577800.,  1592420.,  1607040.,  1206544.,  1218272.,
      1230000.,  1241728.,  4091536.,  4105440.,  4119344.,  4133248.,
      5056860.,  5074280.,  5091700.,  5109120.,  5998904.,  6019856.,
      6040808.,  6061760.,  6917540.,  6942040.,  6966540.,  6991040.,
      6948788.,  6973400.,  6998012.,  7022624.,  6980036.,  7004760.,
      7029484.,  7054208.,  7011284.,  7036120.,  7060956.,  7085792.,
      5936888.,  5958224.,  5979560.,  6000896.,  4886540.,  4904360.,
      4922180.,  4940000.,  3860368.,  3874656.,  3888944.,  3903232.,
      4766580.,  4784360.,  4802140.,  4819920.,  5882875.,  5905150.,
      5927425.,  5949700.,  6968710.,  6995500.,  7022290.,  7049080.,
      8023925.,  8055250.,  8086575.,  8117900.,  8059065.,  8090530.,
      8121995.,  8153460.,  8094205.,  8125810.,  8157415.,  8189020.,
      8129345.,  8161090.,  8192835.,  8224580.,  6872950.,  6900220.,
      6927490.,  6954760.,  5647975.,  5670750.,  5693525.,  5716300.,
      4454580.,  4472840.,  4491100.,  4509360.,  5284568.,  5306384.,
      5328200.,  5350016.,  6511210.,  6538540.,  6565870.,  6593200.,
      7699668.,  7732536.,  7765404.,  7798272.,  8849750.,  8888180.,
      8926610.,  8965040.,  8887214.,  8925812.,  8964410.,  9003008.,
      8924678.,  8963444.,  9002210.,  9040976.,  8962142.,  9001076.,
      9040010.,  9078944.,  7562868.,  7596312.,  7629756.,  7663200.,
      6202930.,  6230860.,  6258790.,  6286720.,  4882520.,  4904912.,
      4927304.,  4949696.,  5636540.,  5662552.,  5688564.,  5714576.,
      6930665.,  6963250.,  6995835.,  7028420.,  8178338.,  8217524.,
      8256710.,  8295896.,  9379335.,  9425150.,  9470965.,  9516780.,
      9417555.,  9463566.,  9509577.,  9555588.,  9455775.,  9501982.,
      9548189.,  9594396.,  9493995.,  9540398.,  9586801.,  9633204.,
      7993202.,  8033060.,  8072918.,  8112776.,  6540205.,  6573490.,
      6606775.,  6640060.,  5135228.,  5161912.,  5188596.,  5215280.,
      5868380.,  5895512.,  5922644.,  5949776.,  7214865.,  7248850.,
      7282835.,  7316820.,  8512658.,  8553524.,  8594390.,  8635256.,
      9761535.,  9809310.,  9857085.,  9904860.,  9799755.,  9847726.,
      9895697.,  9943668.,  9837975.,  9886142.,  9934309.,  9982476.,
      9876195.,  9924558.,  9972921.,  10021284., 8314082.,  8355620.,
      8397158.,  8438696.,  6802005.,  6836690.,  6871375.,  6906060.,
      5340188.,  5367992.,  5395796.,  5423600.,  6100220.,  6128472.,
      6156724.,  6184976.,  7499065.,  7534450.,  7569835.,  7605220.,
      8846978.,  8889524.,  8932070.,  8974616.,  10143735., 10193470.,
      10243205., 10292940., 10181955., 10231886., 10281817., 10331748.,
      10220175., 10270302., 10320429., 10370556., 10258395., 10308718.,
      10359041., 10409364., 8634962.,  8678180.,  8721398.,  8764616.,
      7063805.,  7099890.,  7135975.,  7172060.,  5545148.,  5574072.,
      5602996.,  5631920.,  6332060.,  6361432.,  6390804.,  6420176.,
      7783265.,  7820050.,  7856835.,  7893620.,  9181298.,  9225524.,
      9269750.,  9313976.,  10525935., 10577630., 10629325., 10681020.,
      10564155., 10616046., 10667937., 10719828., 10602375., 10654462.,
      10706549., 10758636., 10640595., 10692878., 10745161., 10797444.,
      8955842.,  9000740.,  9045638.,  9090536.,  7325605.,  7363090.,
      7400575.,  7438060.,  5750108.,  5780152.,  5810196.,  5840240.,
      4750232.,  4775888.,  4801544.,  4827200.,  5820730.,  5852860.,
      5884990.,  5917120.,  6844020.,  6882648.,  6921276.,  6959904.,
      7819910.,  7865060.,  7910210.,  7955360.,  7847966.,  7893284.,
      7938602.,  7983920.,  7876022.,  7921508.,  7966994.,  8012480.,
      7904078.,  7949732.,  7995386.,  8041040.,  6628884.,  6668088.,
      6707292.,  6746496.,  5402050.,  5434780.,  5467510.,  5500240.,
      4223768.,  4250000.,  4276232.,  4302464.,  3379220.,  3401000.,
      3422780.,  3444560.,  4123075.,  4150350.,  4177625.,  4204900.,
      4826230.,  4859020.,  4891810.,  4924600.,  5488525.,  5526850.,
      5565175.,  5603500.,  5507985.,  5546450.,  5584915.,  5623380.,
      5527445.,  5566050.,  5604655.,  5643260.,  5546905.,  5585650.,
      5624395.,  5663140.,  4628710.,  4661980.,  4695250.,  4728520.,
      3752175.,  3779950.,  3807725.,  3835500.,  2917460.,  2939720.,
      2961980.,  2984240.,  2227984.,  2245728.,  2263472.,  2281216.,
      2701500.,  2723720.,  2745940.,  2768160.,  3141368.,  3168080.,
      3194792.,  3221504.,  3547460.,  3578680.,  3609900.,  3641120.,
      3559892.,  3591224.,  3622556.,  3653888.,  3572324.,  3603768.,
      3635212.,  3666656.,  3584756.,  3616312.,  3647868.,  3679424.,
      2968760.,  2995856.,  3022952.,  3050048.,  2387180.,  2409800.,
      2432420.,  2455040.,  1840144.,  1858272.,  1876400.,  1894528.};
  const std::array<int, 4> in_shape = {{3, 10, 10, 2}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x10x10x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1735335.,  1741950.,  1748565.,  1755180.,  1773555.,  1780366.,
      1787177.,  1793988.,  1811775.,  1818782.,  1825789.,  1832796.,
      1849995.,  1857198.,  1864401.,  1871604.,  2117535.,  2126110.,
      2134685.,  2143260.,  2155755.,  2164526.,  2173297.,  2182068.,
      2193975.,  2202942.,  2211909.,  2220876.,  2232195.,  2241358.,
      2250521.,  2259684.,  2499735.,  2510270.,  2520805.,  2531340.,
      2537955.,  2548686.,  2559417.,  2570148.,  2576175.,  2587102.,
      2598029.,  2608956.,  2614395.,  2625518.,  2636641.,  2647764.,
      2881935.,  2894430.,  2906925.,  2919420.,  2920155.,  2932846.,
      2945537.,  2958228.,  2958375.,  2971262.,  2984149.,  2997036.,
      2996595.,  3009678.,  3022761.,  3035844.,  5557335.,  5583550.,
      5609765.,  5635980.,  5595555.,  5621966.,  5648377.,  5674788.,
      5633775.,  5660382.,  5686989.,  5713596.,  5671995.,  5698798.,
      5725601.,  5752404.,  5939535.,  5967710.,  5995885.,  6024060.,
      5977755.,  6006126.,  6034497.,  6062868.,  6015975.,  6044542.,
      6073109.,  6101676.,  6054195.,  6082958.,  6111721.,  6140484.,
      6321735.,  6351870.,  6382005.,  6412140.,  6359955.,  6390286.,
      6420617.,  6450948.,  6398175.,  6428702.,  6459229.,  6489756.,
      6436395.,  6467118.,  6497841.,  6528564.,  6703935.,  6736030.,
      6768125.,  6800220.,  6742155.,  6774446.,  6806737.,  6839028.,
      6780375.,  6812862.,  6845349.,  6877836.,  6818595.,  6851278.,
      6883961.,  6916644.,  9379335.,  9425150.,  9470965.,  9516780.,
      9417555.,  9463566.,  9509577.,  9555588.,  9455775.,  9501982.,
      9548189.,  9594396.,  9493995.,  9540398.,  9586801.,  9633204.,
      9761535.,  9809310.,  9857085.,  9904860.,  9799755.,  9847726.,
      9895697.,  9943668.,  9837975.,  9886142.,  9934309.,  9982476.,
      9876195.,  9924558.,  9972921.,  10021284., 10143735., 10193470.,
      10243205., 10292940., 10181955., 10231886., 10281817., 10331748.,
      10220175., 10270302., 10320429., 10370556., 10258395., 10308718.,
      10359041., 10409364., 10525935., 10577630., 10629325., 10681020.,
      10564155., 10616046., 10667937., 10719828., 10602375., 10654462.,
      10706549., 10758636., 10640595., 10692878., 10745161., 10797444.};
  const std::array<int, 4> in_shape = {{3, 10, 10, 2}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x10x10x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      733216.,  929640.,  1130800., 1336440., 1399384., 1462328., 1525272.,
      1315696., 1102920., 887200.,  1119000., 1408350., 1700900., 1996330.,
      2067170., 2138010., 2208850., 1895540., 1580950., 1265400., 1549936.,
      1940780., 2332200., 2723812., 2799412., 2875012., 2950612., 2521992.,
      2095100., 1670320., 2008104., 2504530., 2997820., 3487526., 3564750.,
      3641974., 3719198., 3168172., 2622970., 2084040., 2476264., 3078530.,
      3673180., 4259766., 4336990., 4414214., 4491438., 3816652., 3152170.,
      2498440., 2944424., 3652530., 4348540., 5032006., 5109230., 5186454.,
      5263678., 4465132., 3681370., 2912840., 3412584., 4226530., 5023900.,
      5804246., 5881470., 5958694., 6035918., 5113612., 4210570., 3327240.,
      2648368., 3268700., 3871560., 4456564., 4513348., 4570132., 4626916.,
      3904680., 3202220., 2519920., 1946520., 2391550., 2819300., 3229450.,
      3268930., 3308410., 3347890., 2810420., 2292150., 1793400., 1324960.,
      1617480., 1894000., 2154264., 2179576., 2204888., 2230200., 1857712.,
      1502760., 1165600., 2939424., 3643880., 4335664., 5014520., 5077464.,
      4799416., 4529560., 3758704., 3002056., 2259872., 2499992., 3095550.,
      3678692., 4249098., 4319938., 4107130., 3902514., 3236916., 2585654.,
      1949048., 2155888., 2663660., 3158184., 3639076., 3714676., 3563972.,
      3421460., 2837000., 2268092., 1715120., 1889192., 2325810., 2747260.,
      3153094., 3230318., 3138582., 3055038., 2532076., 2026970., 1540168.,
      1730664., 2136930., 2531740., 2914646., 2991870., 2957478., 2931278.,
      2453516., 1989898., 1540872., 1801512., 2234770., 2660284., 3077606.,
      3154830., 3177782., 3208926., 2719020., 2239546., 1770952., 2101736.,
      2619330., 3132892., 3641974., 3719198., 3796422., 3873646., 3297868.,
      2728810., 2166920., 1675312., 2079260., 2476488., 2866612., 2923396.,
      2980180., 3036964., 2574120., 2120300., 1675888., 1261080., 1557150.,
      1844900., 2124010., 2163490., 2202970., 2242450., 1889780., 1547350.,
      1215480., 876960.,  1075400., 1265008., 1445528., 1470840., 1496152.,
      1521464., 1271728., 1032360., 803616.,  3433504., 4258920., 5070640.,
      5868408., 5931352., 5994296., 6057240., 5144944., 4247880., 3366304.,
      4171800., 5166750., 6141860., 7096810., 7167650., 7238490., 7309330.,
      6198260., 5108950., 4041720., 4826224., 5967020., 7080744., 7768676.,
      7454132., 7147780., 6849620., 5593224., 4366204., 3168944., 3834664.,
      4727570., 5593276., 6090342., 5834766., 5587382., 5348190., 4337196.,
      3356090., 2405320., 2988008., 3678530., 4345564., 4705014., 4506782.,
      4316742., 4134894., 3341132., 2573546., 1832584., 2370728., 2916210.,
      3441916., 3721094., 3580206., 3447510., 3323006., 2689132., 2077722.,
      1489224., 1982824., 2440610., 2882332., 3138582., 3055038., 2979686.,
      2912526., 2381196., 1868618., 1375240., 1267504., 1555420., 1830984.,
      1982196., 1935556., 1897108., 1866852., 1530280., 1208364., 901488.,
      743576.,  912190.,  1073252., 1172170., 1165570., 1167162., 1176946.,
      987572.,  807670.,  637560.,  428960.,  533320.,  636016.,  736792.,
      762104.,  787416.,  812728.,  685744.,  561960.,  441632.};
  const std::array<int, 4> in_shape = {{3, 10, 10, 4}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x10x10x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3487526.,  3564750.,  3641974.,  3719198.,  4259766.,  4336990.,
      4414214.,  4491438.,  5032006.,  5109230.,  5186454.,  5263678.,
      5804246.,  5881470.,  5958694.,  6035918.,  11209926., 11287150.,
      11364374., 11441598., 11982166., 12059390., 12136614., 12213838.,
      12754406., 12831630., 12908854., 12986078., 13526646., 13603870.,
      13681094., 13758318., 13017702., 12429326., 11857334., 11301726.,
      9474806.,  9001118.,  8543814.,  8102894.,  6734726.,  6375726.,
      6033110.,  5706878.,  4797462.,  4553150.,  4325222.,  4113678.};
  const std::array<int, 4> in_shape = {{3, 10, 10, 4}};
  const int features = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 1024.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x10x10x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1462048.,  1466432.,  1853640.,  1859280.,  2254640.,  2261600.,
      2664536.,  2672880.,  2789976.,  2798768.,  2915416.,  2924656.,
      3040856.,  3050544.,  2622896.,  2631392.,  2198600.,  2205840.,
      1768480.,  1774400.,  2230920.,  2238000.,  2807650.,  2816700.,
      3390700.,  3401800.,  3979430.,  3992660.,  4120550.,  4134340.,
      4261670.,  4276020.,  4402790.,  4417700.,  3778060.,  3791080.,
      3150850.,  3161900.,  2521800.,  2530800.,  3089456.,  3099872.,
      3868300.,  3881560.,  4648200.,  4664400.,  5428388.,  5447624.,
      5578916.,  5598824.,  5729444.,  5750024.,  5879972.,  5901224.,
      5025480.,  5043984.,  4174540.,  4190200.,  3327920.,  3340640.,
      4001816.,  4016208.,  4990790.,  5009060.,  5973380.,  5995640.,
      6948690.,  6975052.,  7102354.,  7129500.,  7256018.,  7283948.,
      7409682.,  7438396.,  6311396.,  6336344.,  5224870.,  5245940.,
      4151000.,  4168080.,  4933656.,  4952528.,  6133190.,  6157060.,
      7317380.,  7346360.,  8485330.,  8519532.,  8638994.,  8673980.,
      8792658.,  8828428.,  8946322.,  8982876.,  7601636.,  7633304.,
      6277670.,  6304340.,  4975320.,  4996880.,  5865496.,  5888848.,
      7275590.,  7305060.,  8661380.,  8697080.,  10021970., 10064012.,
      10175634., 10218460., 10329298., 10372908., 10482962., 10527356.,
      8891876.,  8930264.,  7330470.,  7362740.,  5799640.,  5825680.,
      6797336.,  6825168.,  8417990.,  8453060.,  10005380., 10047800.,
      11558610., 11608492., 11712274., 11762940., 11865938., 11917388.,
      12019602., 12071836., 10182116., 10227224., 8383270.,  8421140.,
      6623960.,  6654480.,  5270960.,  5296736.,  6504940.,  6537400.,
      7703880.,  7743120.,  8867012.,  8913128.,  8979908.,  9026696.,
      9092804.,  9140264.,  9205700.,  9253832.,  7767816.,  7809360.,
      6369580.,  6404440.,  5011760.,  5039840.,  3869960.,  3893040.,
      4754050.,  4783100.,  5603500.,  5638600.,  6417670.,  6458900.,
      6496070.,  6537860.,  6574470.,  6616820.,  6652870.,  6695780.,
      5583820.,  5620840.,  4553250.,  4584300.,  3561800.,  3586800.,
      2630176.,  2649920.,  3210120.,  3234960.,  3758000.,  3788000.,
      4273304.,  4308528.,  4323480.,  4359152.,  4373656.,  4409776.,
      4423832.,  4460400.,  3683888.,  3715424.,  2979080.,  3005520.,
      2309920.,  2331200.,  5857056.,  5878848.,  7260360.,  7287760.,
      8638256.,  8671328.,  9990232.,  10029040., 10115672., 10154928.,
      9561176.,  9598832.,  9023064.,  9059120.,  7486896.,  7517408.,
      5979208.,  6004112.,  4500512.,  4519744.,  4977288.,  4999984.,
      6162530.,  6191100.,  7322860.,  7357384.,  8457638.,  8498196.,
      8598758.,  8639876.,  8174630.,  8214260.,  7766886.,  7805028.,
      6441484.,  6473832.,  5144834.,  5171308.,  3877576.,  3898096.,
      4287536.,  4311776.,  5296780.,  5327320.,  6279432.,  6316368.,
      7234724.,  7278152.,  7385252.,  7429352.,  7085220.,  7127944.,
      6801572.,  6842920.,  5638856.,  5674000.,  4507340.,  4536184.,
      3407792.,  3430240.,  3751960.,  3778384.,  4618310.,  4651620.,
      5454212.,  5494520.,  6258770.,  6306188.,  6412434.,  6460636.,
      6230226.,  6277164.,  6064402.,  6110076.,  5025252.,  5064152.,
      4021926.,  4053940.,  3055320.,  3080336.,  3438616.,  3461328.,
      4245190.,  4273860.,  5028740.,  5063480.,  5788370.,  5829292.,
      5942034.,  5983740.,  5874514.,  5914956.,  5823378.,  5862556.,
      4873700.,  4907032.,  3952422.,  3979796.,  3060440.,  3081744.,
      3584024.,  3603024.,  4445510.,  4469540.,  5291396.,  5320568.,
      6120786.,  6155212.,  6274450.,  6309660.,  6321618.,  6355564.,
      6385170.,  6417852.,  5410276.,  5438040.,  4456358.,  4479092.,
      3524312.,  3541904.,  4188184.,  4203472.,  5219270.,  5238660.,
      6242180.,  6265784.,  7256018.,  7283948.,  7409682.,  7438396.,
      7563346.,  7592844.,  7717010.,  7747292.,  6569444.,  6595736.,
      5435430.,  5457620.,  4315864.,  4333840.,  3335600.,  3350624.,
      4139500.,  4158520.,  4929864.,  4952976.,  5705924.,  5733224.,
      5818820.,  5846792.,  5931716.,  5960360.,  6044612.,  6073928.,
      5122824.,  5148240.,  4219180.,  4240600.,  3334448.,  3351776.,
      2508040.,  2522160.,  3096450.,  3114300.,  3668140.,  3689800.,
      4222470.,  4248020.,  4300870.,  4326980.,  4379270.,  4405940.,
      4457670.,  4484900.,  3755980.,  3779560.,  3074850.,  3094700.,
      2414920.,  2430960.,  1741344.,  1753920.,  2134920.,  2150800.,
      2510768.,  2530016.,  2868376.,  2891056.,  2918552.,  2941680.,
      2968728.,  2992304.,  3018904.,  3042928.,  2522672.,  2543456.,
      2047240.,  2064720.,  1593120.,  1607232.,  6844192.,  6867008.,
      8489160.,  8517840.,  10106672., 10141280., 11696216., 11736816.,
      11821656., 11862704., 11947096., 11988592., 12072536., 12114480.,
      10253744., 10289888., 8465480.,  8495760.,  6708256.,  6732608.,
      8313480.,  8343600.,  10295650., 10333500., 12238060., 12283720.,
      14140070., 14193620., 14281190., 14335300., 14422310., 14476980.,
      14563430., 14618660., 12348940., 12396520., 10178050., 10217900.,
      8051400.,  8083440.,  9614384.,  9652448.,  11886220., 11934040.,
      14103816., 14161488., 15471780., 15537352., 14844068., 14908264.,
      14232740., 14295560., 13637796., 13699240., 11134664., 11186448.,
      8690380.,  8732408.,  6305712.,  6337888.,  7630872.,  7669328.,
      9406790.,  9455140.,  11128196., 11186552., 12114258., 12180684.,
      11604370., 11669532., 11110866., 11174764., 10633746., 10696380.,
      8621540.,  8674392.,  6669222.,  6712180.,  4777688.,  4810640.,
      5941272.,  5976016.,  7313350.,  7357060.,  8638340.,  8691128.,
      9350098.,  9410028.,  8954898.,  9013564.,  8576082.,  8633484.,
      8213650.,  8269788.,  6634980.,  6682264.,  5108774.,  5147092.,
      3635928.,  3665168.,  4710424.,  4741456.,  5793350.,  5832420.,
      6836612.,  6883832.,  7388754.,  7442188.,  7108242.,  7160412.,
      6844114.,  6895020.,  6596370.,  6646012.,  5336548.,  5378264.,
      4121766.,  4155444.,  2952920.,  2978448.,  3938328.,  3965648.,
      4846790.,  4881220.,  5723012.,  5764664.,  6230226.,  6277164.,
      6064402.,  6110076.,  5914962.,  5959372.,  5781906.,  5825052.,
      4726244.,  4762392.,  3708198.,  3737236.,  2728664.,  2750480.,
      2514352.,  2535008.,  3084780.,  3110840.,  3630408.,  3661968.,
      3929284.,  3964392.,  3837380.,  3871112.,  3761860.,  3794216.,
      3702724.,  3733704.,  3034888.,  3060560.,  2396460.,  2416728.,
      1788208.,  1802976.,  1473800.,  1487152.,  1807490.,  1824380.,
      2125996.,  2146504.,  2322182.,  2344340.,  2310470.,  2331140.,
      2315142.,  2334324.,  2336198.,  2353892.,  1960908.,  1975144.,
      1604642.,  1615340.,  1268040.,  1275120.,  852512.,   857920.,
      1059720.,  1066640.,  1263536.,  1272032.,  1463448.,  1473584.,
      1513624.,  1524208.,  1563800.,  1574832.,  1613976.,  1625456.,
      1361456.,  1371488.,  1115400.,  1123920.,  876320.,   883264.};
  const std::array<int, 4> in_shape = {{3, 10, 10, 4}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x10x10x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6948690.,  6975052.,  7102354.,  7129500.,  7256018.,  7283948.,
      7409682.,  7438396.,  8485330.,  8519532.,  8638994.,  8673980.,
      8792658.,  8828428.,  8946322.,  8982876.,  10021970., 10064012.,
      10175634., 10218460., 10329298., 10372908., 10482962., 10527356.,
      11558610., 11608492., 11712274., 11762940., 11865938., 11917388.,
      12019602., 12071836., 6258770.,  6306188.,  6412434.,  6460636.,
      6230226.,  6277164.,  6064402.,  6110076.,  5788370.,  5829292.,
      5942034.,  5983740.,  5874514.,  5914956.,  5823378.,  5862556.,
      6120786.,  6155212.,  6274450.,  6309660.,  6321618.,  6355564.,
      6385170.,  6417852.,  7256018.,  7283948.,  7409682.,  7438396.,
      7563346.,  7592844.,  7717010.,  7747292.,  12114258., 12180684.,
      11604370., 11669532., 11110866., 11174764., 10633746., 10696380.,
      9350098.,  9410028.,  8954898.,  9013564.,  8576082.,  8633484.,
      8213650.,  8269788.,  7388754.,  7442188.,  7108242.,  7160412.,
      6844114.,  6895020.,  6596370.,  6646012.,  6230226.,  6277164.,
      6064402.,  6110076.,  5914962.,  5959372.,  5781906.,  5825052.};
  const std::array<int, 4> in_shape = {{3, 10, 10, 4}};
  const int features = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, SAME3x10x10x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      831776.,   836160.,   840544.,   844928.,   1103752.,  1109392.,
      1115032.,  1120672.,  1378096.,  1385056.,  1392016.,  1398976.,
      1653784.,  1662128.,  1670472.,  1678816.,  1764952.,  1773744.,
      1782536.,  1791328.,  1876120.,  1885360.,  1894600.,  1903840.,
      1987288.,  1996976.,  2006664.,  2016352.,  1765936.,  1774432.,
      1782928.,  1791424.,  1556552.,  1563792.,  1571032.,  1578272.,
      1360160.,  1366080.,  1372000.,  1377920.,  1465704.,  1472784.,
      1479864.,  1486944.,  1943402.,  1952452.,  1961502.,  1970552.,
      2417276.,  2428376.,  2439476.,  2450576.,  2886046.,  2899276.,
      2912506.,  2925736.,  3028462.,  3042252.,  3056042.,  3069832.,
      3170878.,  3185228.,  3199578.,  3213928.,  3313294.,  3328204.,
      3343114.,  3358024.,  2924860.,  2937880.,  2950900.,  2963920.,
      2556122.,  2567172.,  2578222.,  2589272.,  2208360.,  2217360.,
      2226360.,  2235360.,  2278320.,  2288736.,  2299152.,  2309568.,
      2995532.,  3008792.,  3022052.,  3035312.,  3698376.,  3714576.,
      3730776.,  3746976.,  4385316.,  4404552.,  4423788.,  4443024.,
      4546436.,  4566344.,  4586252.,  4606160.,  4707556.,  4728136.,
      4748716.,  4769296.,  4868676.,  4889928.,  4911180.,  4932432.,
      4267336.,  4285840.,  4304344.,  4322848.,  3697772.,  3713432.,
      3729092.,  3744752.,  3161520.,  3174240.,  3186960.,  3199680.,
      3197944.,  3212336.,  3226728.,  3241120.,  4170542.,  4188812.,
      4207082.,  4225352.,  5113876.,  5136136.,  5158396.,  5180656.,
      6026154.,  6052516.,  6078878.,  6105240.,  6193434.,  6220580.,
      6247726.,  6274872.,  6360714.,  6388644.,  6416574.,  6444504.,
      6527994.,  6556708.,  6585422.,  6614136.,  5685844.,  5710792.,
      5735740.,  5760688.,  4891902.,  4912972.,  4934042.,  4955112.,
      4147960.,  4165040.,  4182120.,  4199200.,  4156024.,  4174896.,
      4193768.,  4212640.,  5384782.,  5408652.,  5432522.,  5456392.,
      6566356.,  6595336.,  6624316.,  6653296.,  7698954.,  7733156.,
      7767358.,  7801560.,  7866234.,  7901220.,  7936206.,  7971192.,
      8033514.,  8069284.,  8105054.,  8140824.,  8200794.,  8237348.,
      8273902.,  8310456.,  7112724.,  7144392.,  7176060.,  7207728.,
      6090782.,  6117452.,  6144122.,  6170792.,  5136760.,  5158320.,
      5179880.,  5201440.,  5114104.,  5137456.,  5160808.,  5184160.,
      6599022.,  6628492.,  6657962.,  6687432.,  8018836.,  8054536.,
      8090236.,  8125936.,  9371754.,  9413796.,  9455838.,  9497880.,
      9539034.,  9581860.,  9624686.,  9667512.,  9706314.,  9749924.,
      9793534.,  9837144.,  9873594.,  9917988.,  9962382.,  10006776.,
      8539604.,  8577992.,  8616380.,  8654768.,  7289662.,  7321932.,
      7354202.,  7386472.,  6125560.,  6151600.,  6177640.,  6203680.,
      6072184.,  6100016.,  6127848.,  6155680.,  7813262.,  7848332.,
      7883402.,  7918472.,  9471316.,  9513736.,  9556156.,  9598576.,
      11044554., 11094436., 11144318., 11194200., 11211834., 11262500.,
      11313166., 11363832., 11379114., 11430564., 11482014., 11533464.,
      11546394., 11598628., 11650862., 11703096., 9966484.,  10011592.,
      10056700., 10101808., 8488542.,  8526412.,  8564282.,  8602152.,
      7114360.,  7144880.,  7175400.,  7205920.,  5466800.,  5492576.,
      5518352.,  5544128.,  7128332.,  7160792.,  7193252.,  7225712.,
      8711496.,  8750736.,  8789976.,  8829216.,  10214756., 10260872.,
      10306988., 10353104., 10357956., 10404744., 10451532., 10498320.,
      10501156., 10548616., 10596076., 10643536., 10644356., 10692488.,
      10740620., 10788752., 9259976.,  9301520.,  9343064.,  9384608.,
      7971372.,  8006232.,  8041092.,  8075952.,  6780080.,  6808160.,
      6836240.,  6864320.,  5440488.,  5463568.,  5486648.,  5509728.,
      7178122.,  7207172.,  7236222.,  7265272.,  8846396.,  8881496.,
      8916596.,  8951696.,  10444030., 10485260., 10526490., 10567720.,
      10575694., 10617484., 10659274., 10701064., 10707358., 10749708.,
      10792058., 10834408., 10839022., 10881932., 10924842., 10967752.,
      9506556.,  9543576.,  9580596.,  9617616.,  8259322.,  8290372.,
      8321422.,  8352472.,  7098600.,  7123600.,  7148600.,  7173600.,
      5240608.,  5260352.,  5280096.,  5299840.,  6395400.,  6420240.,
      6445080.,  6469920.,  7486000.,  7516000.,  7546000.,  7576000.,
      8511384.,  8546608.,  8581832.,  8617056.,  8611288.,  8646960.,
      8682632.,  8718304.,  8711192.,  8747312.,  8783432.,  8819552.,
      8811096.,  8847664.,  8884232.,  8920800.,  7336240.,  7367776.,
      7399312.,  7430848.,  5931720.,  5958160.,  5984600.,  6011040.,
      4598560.,  4619840.,  4641120.,  4662400.,  4787488.,  4809280.,
      4831072.,  4852864.,  6488712.,  6516112.,  6543512.,  6570912.,
      8122672.,  8155744.,  8188816.,  8221888.,  9688344.,  9727152.,
      9765960.,  9804768.,  9799512.,  9838768.,  9878024.,  9917280.,
      9601432.,  9639088.,  9676744.,  9714400.,  9436120.,  9472176.,
      9508232.,  9544288.,  8391728.,  8422240.,  8452752.,  8483264.,
      7428936.,  7453840.,  7478744.,  7503648.,  6548768.,  6568000.,
      6587232.,  6606464.,  6320232.,  6342928.,  6365624.,  6388320.,
      8469802.,  8498372.,  8526942.,  8555512.,  10553084., 10587608.,
      10622132., 10656656., 12568798., 12609356., 12649914., 12690472.,
      12711214., 12752332., 12793450., 12834568., 12773758., 12813388.,
      12853018., 12892648., 12869070., 12907212., 12945354., 12983496.,
      11443644., 11475992., 11508340., 11540688., 9051802.,  9078276.,
      9104750.,  9131224.,  6743400.,  6763920.,  6784440.,  6804960.,
      7183792.,  7208032.,  7232272.,  7256512.,  8817100.,  8847640.,
      8878180.,  8908720.,  10380744., 10417680., 10454616., 10491552.,
      11873188., 11916616., 11960044., 12003472., 12034308., 12078408.,
      12122508., 12166608., 11296356., 11339080., 11381804., 11424528.,
      10591172., 10632520., 10673868., 10715216., 8688712.,  8723856.,
      8759000.,  8794144.,  6873324.,  6902168.,  6931012.,  6959856.,
      5146544.,  5168992.,  5191440.,  5213888.,  5209336.,  5235760.,
      5262184.,  5288608.,  6392430.,  6425740.,  6459050.,  6492360.,
      7498132.,  7538440.,  7578748.,  7619056.,  8524650.,  8572068.,
      8619486.,  8666904.,  8691930.,  8740132.,  8788334.,  8836536.,
      8189514.,  8236452.,  8283390.,  8330328.,  7719866.,  7765540.,
      7811214.,  7856888.,  6310868.,  6349768.,  6388668.,  6427568.,
      4998206.,  5030220.,  5062234.,  5094248.,  3783672.,  3808688.,
      3833704.,  3858720.,  3685240.,  3707952.,  3730664.,  3753376.,
      4585870.,  4614540.,  4643210.,  4671880.,  5423956.,  5458696.,
      5493436.,  5528176.,  6197706.,  6238628.,  6279550.,  6320472.,
      6364986.,  6406692.,  6448398.,  6490104.,  6091946.,  6132388.,
      6172830.,  6213272.,  5851674.,  5890852.,  5930030.,  5969208.,
      4866452.,  4899784.,  4933116.,  4966448.,  3962718.,  3990092.,
      4017466.,  4044840.,  3142264.,  3163568.,  3184872.,  3206176.,
      3078648.,  3097648.,  3116648.,  3135648.,  3926190.,  3950220.,
      3974250.,  3998280.,  4726036.,  4755208.,  4784380.,  4813552.,
      5476394.,  5510820.,  5545246.,  5579672.,  5643674.,  5678884.,
      5714094.,  5749304.,  5600010.,  5633956.,  5667902.,  5701848.,
      5589114.,  5621796.,  5654478.,  5687160.,  4798292.,  4826056.,
      4853820.,  4881584.,  4074110.,  4096844.,  4119578.,  4142312.,
      3418360.,  3435952.,  3453544.,  3471136.,  3389560.,  3404848.,
      3420136.,  3435424.,  4413390.,  4432780.,  4452170.,  4471560.,
      5404372.,  5427976.,  5451580.,  5475184.,  6360714.,  6388644.,
      6416574.,  6444504.,  6527994.,  6556708.,  6585422.,  6614136.,
      6695274.,  6724772.,  6754270.,  6783768.,  6862554.,  6892836.,
      6923118.,  6953400.,  5971220.,  5997512.,  6023804.,  6050096.,
      5131678.,  5153868.,  5176058.,  5198248.,  4345720.,  4363696.,
      4381672.,  4399648.,  3212464.,  3227488.,  3242512.,  3257536.,
      4245900.,  4264920.,  4283940.,  4302960.,  5243976.,  5267088.,
      5290200.,  5313312.,  6205156.,  6232456.,  6259756.,  6287056.,
      6348356.,  6376328.,  6404300.,  6432272.,  6491556.,  6520200.,
      6548844.,  6577488.,  6634756.,  6664072.,  6693388.,  6722704.,
      5821128.,  5846544.,  5871960.,  5897376.,  5060268.,  5081688.,
      5103108.,  5124528.,  4353712.,  4371040.,  4388368.,  4405696.,
      3413736.,  3427856.,  3441976.,  3456096.,  4562250.,  4580100.,
      4597950.,  4615800.,  5677244.,  5698904.,  5720564.,  5742224.,
      6757438.,  6782988.,  6808538.,  6834088.,  6889102.,  6915212.,
      6941322.,  6967432.,  7020766.,  7047436.,  7074106.,  7100776.,
      7152430.,  7179660.,  7206890.,  7234120.,  6323068.,  6346648.,
      6370228.,  6393808.,  5543098.,  5562948.,  5582798.,  5602648.,
      4813800.,  4829840.,  4845880.,  4861920.,  3470112.,  3482688.,
      3495264.,  3507840.,  4253960.,  4269840.,  4285720.,  4301600.,
      5002288.,  5021536.,  5040784.,  5060032.,  5714072.,  5736752.,
      5759432.,  5782112.,  5813976.,  5837104.,  5860232.,  5883360.,
      5913880.,  5937456.,  5961032.,  5984608.,  6013784.,  6037808.,
      6061832.,  6085856.,  5024560.,  5045344.,  5066128.,  5086912.,
      4077000.,  4094480.,  4111960.,  4129440.,  3172128.,  3186240.,
      3200352.,  3214464.,  5089568.,  5112384.,  5135200.,  5158016.,
      6684040.,  6712720.,  6741400.,  6770080.,  8207152.,  8241760.,
      8276368.,  8310976.,  9657880.,  9698480.,  9739080.,  9779680.,
      9769048.,  9810096.,  9851144.,  9892192.,  9880216.,  9921712.,
      9963208.,  10004704., 9991384.,  10033328., 10075272., 10117216.,
      8742448.,  8778592.,  8814736.,  8850880.,  7579208.,  7609488.,
      7639768.,  7670048.,  6502688.,  6527040.,  6551392.,  6575744.,
      7119720.,  7149840.,  7179960.,  7210080.,  9222890.,  9260740.,
      9298590.,  9336440.,  11230076., 11275736., 11321396., 11367056.,
      13139998., 13193548., 13247098., 13300648., 13282414., 13336524.,
      13390634., 13444744., 13424830., 13479500., 13534170., 13588840.,
      13567246., 13622476., 13677706., 13732936., 11774524., 11822104.,
      11869684., 11917264., 10093658., 10133508., 10173358., 10213208.,
      8525928.,  8557968.,  8590008.,  8622048.,  8812464.,  8850528.,
      8888592.,  8926656.,  11329100., 11376920., 11424740., 11472560.,
      13720776., 13778448., 13836120., 13893792., 15447332., 15512904.,
      15578476., 15644048., 15102596., 15166792., 15230988., 15295184.,
      14790628., 14853448., 14916268., 14979088., 14511428., 14572872.,
      14634316., 14695760., 12389192., 12440976., 12492760., 12544544.,
      10409324., 10451352., 10493380., 10535408., 8573360.,  8605536.,
      8637712.,  8669888.,  8138232.,  8176688.,  8215144.,  8253600.,
      10547630., 10595980., 10644330., 10692680., 12831508., 12889864.,
      12948220., 13006576., 14678826., 14745252., 14811678., 14878104.,
      14569626., 14634788., 14699950., 14765112., 14493194., 14557092.,
      14620990., 14684888., 14449530., 14512164., 14574798., 14637432.,
      12506452., 12559304., 12612156., 12665008., 10707838., 10750796.,
      10793754., 10836712., 9055480.,  9088432.,  9121384.,  9154336.,
      8055928.,  8090672.,  8125416.,  8160160.,  10543310., 10587020.,
      10630730., 10674440., 12920020., 12972808., 13025596., 13078384.,
      15104394., 15164324., 15224254., 15284184., 15224570., 15283236.,
      15341902., 15400568., 15377514., 15434916., 15492318., 15549720.,
      14514650., 14570788., 14626926., 14683064., 11586324., 11633608.,
      11680892., 11728176., 8787614.,  8825932.,  8864250.,  8902568.,
      6120312.,  6149552.,  6178792.,  6208032.,  7842552.,  7873584.,
      7904616.,  7935648.,  9588718.,  9627788.,  9666858.,  9705928.,
      11239060., 11286280., 11333500., 11380720., 11892714., 11946148.,
      11999582., 12053016., 11193690., 11245860., 11298030., 11350200.,
      10527434., 10578340., 10629246., 10680152., 9893946.,  9943588.,
      9993230.,  10042872., 7848148.,  7889864.,  7931580.,  7973296.,
      5917118.,  5950796.,  5984474.,  6018152.,  4102648.,  4128176.,
      4153704.,  4179232.,  5400952.,  5428272.,  5455592.,  5482912.,
      6635278.,  6669708.,  6704138.,  6738568.,  7788628.,  7830280.,
      7871932.,  7913584.,  8189514.,  8236452.,  8283390.,  8330328.,
      7719866.,  7765540.,  7811214.,  7856888.,  7282986.,  7327396.,
      7371806.,  7416216.,  6878874.,  6922020.,  6965166.,  7008312.,
      5486228.,  5522376.,  5558524.,  5594672.,  4193502.,  4222540.,
      4251578.,  4280616.,  3002488.,  3024304.,  3046120.,  3067936.,
      3169968.,  3190624.,  3211280.,  3231936.,  3964428.,  3990488.,
      4016548.,  4042608.,  4701000.,  4732560.,  4764120.,  4795680.,
      4937828.,  4972936.,  5008044.,  5043152.,  4673476.,  4707208.,
      4740940.,  4774672.,  4441892.,  4474248.,  4506604.,  4538960.,
      4243076.,  4274056.,  4305036.,  4336016.,  3480008.,  3505680.,
      3531352.,  3557024.,  2792236.,  2812504.,  2832772.,  2853040.,
      2181296.,  2196064.,  2210832.,  2225600.,  2034152.,  2047504.,
      2060856.,  2074208.,  2673418.,  2690308.,  2707198.,  2724088.,
      3282236.,  3302744.,  3323252.,  3343760.,  3648382.,  3670540.,
      3692698.,  3714856.,  3601870.,  3622540.,  3643210.,  3663880.,
      3588126.,  3607308.,  3626490.,  3645672.,  3607150.,  3624844.,
      3642538.,  3660232.,  3201020.,  3215256.,  3229492.,  3243728.,
      2841210.,  2851908.,  2862606.,  2873304.,  2529000.,  2536080.,
      2543160.,  2550240.,  1699616.,  1705024.,  1710432.,  1715840.,
      2112520.,  2119440.,  2126360.,  2133280.,  2518576.,  2527072.,
      2535568.,  2544064.,  2916760.,  2926896.,  2937032.,  2947168.,
      3016664.,  3027248.,  3037832.,  3048416.,  3116568.,  3127600.,
      3138632.,  3149664.,  3216472.,  3227952.,  3239432.,  3250912.,
      2712880.,  2722912.,  2732944.,  2742976.,  2222280.,  2230800.,
      2239320.,  2247840.,  1745696.,  1752640.,  1759584.,  1766528.};
  const std::array<int, 4> in_shape = {{3, 10, 10, 4}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}
TYPED_TEST(ForwardWindow7Stride1, VALID3x10x10x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6026154.,  6052516.,  6078878.,  6105240.,  6193434.,  6220580.,
      6247726.,  6274872.,  6360714.,  6388644.,  6416574.,  6444504.,
      6527994.,  6556708.,  6585422.,  6614136.,  7698954.,  7733156.,
      7767358.,  7801560.,  7866234.,  7901220.,  7936206.,  7971192.,
      8033514.,  8069284.,  8105054.,  8140824.,  8200794.,  8237348.,
      8273902.,  8310456.,  9371754.,  9413796.,  9455838.,  9497880.,
      9539034.,  9581860.,  9624686.,  9667512.,  9706314.,  9749924.,
      9793534.,  9837144.,  9873594.,  9917988.,  9962382.,  10006776.,
      11044554., 11094436., 11144318., 11194200., 11211834., 11262500.,
      11313166., 11363832., 11379114., 11430564., 11482014., 11533464.,
      11546394., 11598628., 11650862., 11703096., 8524650.,  8572068.,
      8619486.,  8666904.,  8691930.,  8740132.,  8788334.,  8836536.,
      8189514.,  8236452.,  8283390.,  8330328.,  7719866.,  7765540.,
      7811214.,  7856888.,  6197706.,  6238628.,  6279550.,  6320472.,
      6364986.,  6406692.,  6448398.,  6490104.,  6091946.,  6132388.,
      6172830.,  6213272.,  5851674.,  5890852.,  5930030.,  5969208.,
      5476394.,  5510820.,  5545246.,  5579672.,  5643674.,  5678884.,
      5714094.,  5749304.,  5600010.,  5633956.,  5667902.,  5701848.,
      5589114.,  5621796.,  5654478.,  5687160.,  6360714.,  6388644.,
      6416574.,  6444504.,  6527994.,  6556708.,  6585422.,  6614136.,
      6695274.,  6724772.,  6754270.,  6783768.,  6862554.,  6892836.,
      6923118.,  6953400.,  14678826., 14745252., 14811678., 14878104.,
      14569626., 14634788., 14699950., 14765112., 14493194., 14557092.,
      14620990., 14684888., 14449530., 14512164., 14574798., 14637432.,
      15104394., 15164324., 15224254., 15284184., 15224570., 15283236.,
      15341902., 15400568., 15377514., 15434916., 15492318., 15549720.,
      14514650., 14570788., 14626926., 14683064., 11892714., 11946148.,
      11999582., 12053016., 11193690., 11245860., 11298030., 11350200.,
      10527434., 10578340., 10629246., 10680152., 9893946.,  9943588.,
      9993230.,  10042872., 8189514.,  8236452.,  8283390.,  8330328.,
      7719866.,  7765540.,  7811214.,  7856888.,  7282986.,  7327396.,
      7371806.,  7416216.,  6878874.,  6922020.,  6965166.,  7008312.};
  const std::array<int, 4> in_shape = {{3, 10, 10, 4}};
  const int features = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, features, padding, max_input_val);
}